diff --git a/AGENTS.md b/AGENTS.md
index 86350a79..00a6649f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -66,7 +66,7 @@ All site configuration is in `docs.json`:
Reference `Recoup-Chat` codebase for correct branding values:
- **Primary color**: `#345A5D` (from `tailwind.config.ts` primaryGreen)
- **Support email**: `agent@recoupable.com`
-- **App URL**: `https://chat.recoupable.com`
+- **App URL**: `https://chat.recoupable.dev`
- **Website**: `https://recoupable.com`
- **Social URLs**:
- X: `https://x.com/recoupai`
diff --git a/agents.mdx b/agents.mdx
index 02dfd895..8c46e091 100644
--- a/agents.mdx
+++ b/agents.mdx
@@ -8,7 +8,7 @@ description: 'Programmatic agent onboarding — sign up and obtain API keys in o
Get a working API key in a single unauthenticated request:
```bash
-curl -X POST "https://api.recoupable.com/api/agents/signup" \
+curl -X POST "https://api.recoupable.dev/api/agents/signup" \
-H "Content-Type: application/json" \
-d '{"email": "agent+'$(date +%s)-$RANDOM'@recoupable.com"}'
```
@@ -29,7 +29,7 @@ That's it. Store `api_key`, pass it in the `x-api-key` header on every subsequen
**One-liner — sign up and export the key in one shot.** Drop this into your shell and you'll have `$RECOUP_API_KEY` ready to use on the next line:
```bash
-export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.com/api/agents/signup" \
+export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.dev/api/agents/signup" \
-H "Content-Type: application/json" \
-d '{"email": "agent+'$(date +%s)-$RANDOM'@recoupable.com"}' | jq -r .api_key)
```
@@ -37,7 +37,7 @@ export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.com/api/agents/s
Verify it worked:
```bash
-curl -H "x-api-key: $RECOUP_API_KEY" https://api.recoupable.com/api/accounts/id
+curl -H "x-api-key: $RECOUP_API_KEY" https://api.recoupable.dev/api/accounts/id
```
@@ -61,7 +61,7 @@ If you're building a human-facing integration and want the user to verify their
Step 1 — request a verification code:
```bash
-curl -X POST "https://api.recoupable.com/api/agents/signup" \
+curl -X POST "https://api.recoupable.dev/api/agents/signup" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
```
@@ -69,7 +69,7 @@ curl -X POST "https://api.recoupable.com/api/agents/signup" \
Step 2 — submit the 6-digit code from the verification email:
```bash
-curl -X POST "https://api.recoupable.com/api/agents/verify" \
+curl -X POST "https://api.recoupable.dev/api/agents/verify" \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "code": "123456"}'
```
@@ -89,7 +89,7 @@ Response:
Pass the returned `api_key` in the `x-api-key` header on every authenticated request:
```bash
-curl -X GET "https://api.recoupable.com/api/tasks" \
+curl -X GET "https://api.recoupable.dev/api/tasks" \
-H "x-api-key: YOUR_API_KEY"
```
diff --git a/authentication.mdx b/authentication.mdx
index fd5f08e5..915838ff 100644
--- a/authentication.mdx
+++ b/authentication.mdx
@@ -26,7 +26,7 @@ API keys are the primary way to authenticate programmatic access to the Recoup A
### Creating an API Key
-1. Navigate to [chat.recoupable.com/keys](https://chat.recoupable.com/keys)
+1. Navigate to [chat.recoupable.dev/keys](https://chat.recoupable.dev/keys)
2. Enter a descriptive name (e.g. `"Production Server"`)
3. Click **Create API Key**
@@ -39,7 +39,7 @@ Copy your API key immediately — it is only shown once. Keys are stored as a se
Pass your key in the `x-api-key` header:
```bash
-curl -X GET "https://api.recoupable.com/api/tasks" \
+curl -X GET "https://api.recoupable.dev/api/tasks" \
-H "x-api-key: YOUR_API_KEY"
```
@@ -61,7 +61,7 @@ Org membership is determined by the account's [organizations](/api-reference/org
If you're building a frontend application that authenticates users via [Privy](https://privy.io), you can pass the user's Privy JWT as a Bearer token instead of an API key.
```bash
-curl -X GET "https://api.recoupable.com/api/tasks" \
+curl -X GET "https://api.recoupable.dev/api/tasks" \
-H "Authorization: Bearer YOUR_PRIVY_JWT"
```
@@ -112,4 +112,4 @@ Some endpoints accept an `organization_id` parameter. When provided, the API add
- API keys are **never stored in plaintext** — only an HMAC-SHA256 hash (keyed with your project secret) is persisted in the database
- **Never include `account_id` in your API key creation request** — the account is always derived from your authenticated credentials
-- Rotate keys immediately if compromised via the [API Keys Management Page](https://chat.recoupable.com/keys)
+- Rotate keys immediately if compromised via the [API Keys Management Page](https://chat.recoupable.dev/keys)
diff --git a/cli.mdx b/cli.mdx
index a021cd1c..176b2255 100644
--- a/cli.mdx
+++ b/cli.mdx
@@ -32,7 +32,7 @@ recoup whoami
```
-Get an API key from the [API Keys page](https://chat.recoupable.com/keys) or use the [agent signup](/agents) for instant key generation.
+Get an API key from the [API Keys page](https://chat.recoupable.dev/keys) or use the [agent signup](/agents) for instant key generation.
## Configuration
@@ -40,7 +40,7 @@ Get an API key from the [API Keys page](https://chat.recoupable.com/keys) or use
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `RECOUP_API_KEY` | Yes | — | Your Recoup API key |
-| `RECOUP_API_URL` | No | `https://api.recoupable.com` | API base URL override |
+| `RECOUP_API_URL` | No | `https://api.recoupable.dev` | API base URL override |
All commands support `--json` for machine-readable output and `--help` for usage info.
diff --git a/content-agent.mdx b/content-agent.mdx
index 67fc9ecd..a4e7dd65 100644
--- a/content-agent.mdx
+++ b/content-agent.mdx
@@ -31,13 +31,13 @@ Pass your own parameters directly to any primitive. Maximum creative control.
```bash
# Generate an image with your own prompt
-curl -X POST https://api.recoupable.com/api/content/image \
+curl -X POST https://api.recoupable.dev/api/content/image \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "A moody portrait in a dimly lit room, front-facing phone camera"}'
# Generate a video from that image
-curl -X POST https://api.recoupable.com/api/content/video \
+curl -X POST https://api.recoupable.dev/api/content/video \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"image_url": "IMAGE_URL_FROM_ABOVE", "prompt": "subtle breathing motion, nearly still"}'
@@ -49,7 +49,7 @@ Pass a template ID and the primitive fills in prompts, reference images, and sty
```bash
# Same image, but the template provides the prompt and reference images
-curl -X POST https://api.recoupable.com/api/content/image \
+curl -X POST https://api.recoupable.dev/api/content/image \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"template": "artist-caption-bedroom", "reference_image_url": "YOUR_FACE_IMAGE"}'
@@ -164,7 +164,7 @@ The **Recoup Content Agent** is a Slack bot that generates social-ready artist v
- `app_mentions:read` — receive @mention events
3. Under **Event Subscriptions**:
- Enable events
- - Set the request URL to `https://api.recoupable.com/api/content-agent/slack`
+ - Set the request URL to `https://api.recoupable.dev/api/content-agent/slack`
- Subscribe to `app_mention` bot event
4. Install the app to your workspace
@@ -176,7 +176,7 @@ The **Recoup Content Agent** is a Slack bot that generates social-ready artist v
| `SLACK_CONTENT_SIGNING_SECRET` | API (Vercel) | Signing secret from Slack app **Basic Information** |
| `CONTENT_AGENT_CALLBACK_SECRET` | API + Tasks | Shared secret for callback authentication (generate a random string) |
| `RECOUP_API_KEY` | API + Tasks | Recoup API key for authenticating pipeline requests |
-| `RECOUP_API_BASE_URL` | Tasks (Trigger.dev) | API base URL (e.g., `https://api.recoupable.com`) |
+| `RECOUP_API_BASE_URL` | Tasks (Trigger.dev) | API base URL (e.g., `https://api.recoupable.dev`) |
#### 3. Verify
diff --git a/credits.mdx b/credits.mdx
index c1ae93c7..d1d0a5f0 100644
--- a/credits.mdx
+++ b/credits.mdx
@@ -23,7 +23,7 @@ Failed calls (4xx / 5xx) do **not** deduct credits. Deduction happens only after
## Check your balance
```bash
-curl -sS https://api.recoupable.com/api/accounts/$ACCOUNT_ID/credits \
+curl -sS https://api.recoupable.dev/api/accounts/$ACCOUNT_ID/credits \
-H "x-api-key: $RECOUP_API_KEY"
```
@@ -62,7 +62,7 @@ Recoup has two tiers. Both refill on a monthly cycle.
### Check your tier
```bash
-curl -sS https://api.recoupable.com/api/accounts/$ACCOUNT_ID/subscription \
+curl -sS https://api.recoupable.dev/api/accounts/$ACCOUNT_ID/subscription \
-H "x-api-key: $RECOUP_API_KEY"
```
@@ -76,10 +76,10 @@ You can purchase credits any time via [`POST /api/credits/sessions`](/api-refere
- **No card, or Stripe declines the saved card → Stripe Checkout fallback.** The response contains a Checkout `url` you open in the browser. When Stripe specifically declined a saved card, the response also includes a `declineReason` (e.g. `insufficient_funds`, `expired_card`) so you can explain *why* before sending the customer to update billing.
```bash
-curl -sS -X POST https://api.recoupable.com/api/credits/sessions \
+curl -sS -X POST https://api.recoupable.dev/api/credits/sessions \
-H "x-api-key: $RECOUP_API_KEY" \
-H "Content-Type: application/json" \
- -d '{"credits": 100, "successUrl": "https://chat.recoupable.com/credits/success"}'
+ -d '{"credits": 100, "successUrl": "https://chat.recoupable.dev/credits/success"}'
```
Full request/response schema at [Create Credits Top-Up Session](/api-reference/credits/sessions-create).
@@ -89,7 +89,7 @@ Full request/response schema at [Create Credits Top-Up Session](/api-reference/c
Before triggering a silent off-session charge, inspect the default payment method on file:
```bash
-curl -sS https://api.recoupable.com/api/accounts/$ACCOUNT_ID/payment-method \
+curl -sS https://api.recoupable.dev/api/accounts/$ACCOUNT_ID/payment-method \
-H "x-api-key: $RECOUP_API_KEY"
```
diff --git a/docs.json b/docs.json
index 40ac47c4..383eed4c 100644
--- a/docs.json
+++ b/docs.json
@@ -411,12 +411,12 @@
},
{
"anchor": "Website",
- "href": "https://recoupable.com",
+ "href": "https://recoupable.dev",
"icon": "globe"
},
{
"anchor": "Blog",
- "href": "https://research.recoupable.com/",
+ "href": "https://research.recoupable.dev/",
"icon": "newspaper"
}
]
diff --git a/index.mdx b/index.mdx
index ed3c6214..adb03dbc 100644
--- a/index.mdx
+++ b/index.mdx
@@ -26,7 +26,7 @@ The skill verifies your email, issues an API key, and prints a memory block for
Get a working API key in a single unauthenticated request. No dashboard, no browser, no human in the loop.
```bash
-export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.com/api/agents/signup" \
+export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.dev/api/agents/signup" \
-H "Content-Type: application/json" \
-d '{"email": "agent+'$(date +%s)-$RANDOM'@recoupable.com"}' | jq -r .api_key)
```
@@ -44,19 +44,19 @@ This is where record labels, musicians, and managers start to build on Recoup AI
All API requests should be made to:
```bash
-https://api.recoupable.com/api
+https://api.recoupable.dev/api
```
## Authentication
Most API endpoints are authenticated using an API key passed in the `x-api-key` header. The only exceptions are the [agent onboarding](/agents) endpoints — [`POST /api/agents/signup`](/api-reference/agents/signup) and [`POST /api/agents/verify`](/api-reference/agents/verify) — which are intentionally unauthenticated so agents can obtain their first API key.
-1. Navigate to the [API Keys Management Page](https://chat.recoupable.com/keys)
+1. Navigate to the [API Keys Management Page](https://chat.recoupable.dev/keys)
2. Sign in with your account
3. Create a new API key and copy it immediately (it's only shown once)
```bash
-curl -X GET "https://api.recoupable.com/api/artists?accountId=YOUR_ACCOUNT_ID" \
+curl -X GET "https://api.recoupable.dev/api/artists?accountId=YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"
```
@@ -186,7 +186,7 @@ If you are an LLM navigating these docs, here is a summary of the endpoint struc
- **`/api/content-agent/*`** — Content agent webhooks (webhook, callback)
- **`/api/agents/*`** — Agent onboarding (signup, verify) — no auth required
-Base URL: `https://api.recoupable.com/api`
+Base URL: `https://api.recoupable.dev/api`
[OpenAPI Specification](https://github.com/sweetmantech/docs/blob/main/api-reference/openapi.json)
diff --git a/mcp.mdx b/mcp.mdx
index f4ca139f..5ba9f3f5 100644
--- a/mcp.mdx
+++ b/mcp.mdx
@@ -6,14 +6,14 @@ description: "Connect AI agents to the Recoup platform using the Model Context P
The Recoup API exposes an [MCP](https://modelcontextprotocol.io/) server that AI agents can connect to for tool use. The server is available at:
```
-https://api.recoupable.com/mcp
+https://api.recoupable.dev/mcp
```
## Authentication
All MCP tools require an API key. Pass it as a Bearer token in the `Authorization` header when connecting to the MCP server.
-You can get a key from the [API Keys page](https://chat.recoupable.com/keys).
+You can get a key from the [API Keys page](https://chat.recoupable.dev/keys).
## Tools
@@ -46,7 +46,7 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(
- new URL("https://api.recoupable.com/mcp"),
+ new URL("https://api.recoupable.dev/mcp"),
{ requestInit: { headers: { Authorization: `Bearer ${RECOUP_API_KEY}` } } },
);
diff --git a/quickstart.mdx b/quickstart.mdx
index 92afeee3..4ccaee80 100644
--- a/quickstart.mdx
+++ b/quickstart.mdx
@@ -8,7 +8,7 @@ description: "Get a Recoup API key in one call and make your first request — n
Sign up your agent and get an API key in a single API call — no dashboard, no browser, no human in the loop. This one-liner signs up a fresh `agent+` address and exports the returned key to `$RECOUP_API_KEY`:
```bash
-export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.com/api/agents/signup" \
+export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.dev/api/agents/signup" \
-H "Content-Type: application/json" \
-d '{"email": "agent+'$(date +%s)-$RANDOM'@recoupable.com"}' | jq -r .api_key)
```
@@ -16,7 +16,7 @@ export RECOUP_API_KEY=$(curl -s -X POST "https://api.recoupable.com/api/agents/s
Verify it worked:
```bash
-curl -H "x-api-key: $RECOUP_API_KEY" https://api.recoupable.com/api/accounts/id
+curl -H "x-api-key: $RECOUP_API_KEY" https://api.recoupable.dev/api/accounts/id
```
@@ -30,7 +30,7 @@ For the full signup + email-verification flow, see the [Agents guide](/agents).
All API requests should be made to:
```bash
-https://api.recoupable.com/api
+https://api.recoupable.dev/api
```
## Your First Request
@@ -40,7 +40,7 @@ Once you have an API key, include it in the `x-api-key` header on every request.
```bash cURL
-curl -X GET "https://api.recoupable.com/api/tasks" \
+curl -X GET "https://api.recoupable.dev/api/tasks" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY"
```
@@ -54,14 +54,14 @@ headers = {
}
response = requests.get(
- "https://api.recoupable.com/api/tasks",
+ "https://api.recoupable.dev/api/tasks",
headers=headers
)
print(response.json())
```
```javascript JavaScript
-const response = await fetch("https://api.recoupable.com/api/tasks", {
+const response = await fetch("https://api.recoupable.dev/api/tasks", {
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
@@ -87,7 +87,7 @@ interface TasksResponse {
tasks: Task[];
}
-const response = await fetch("https://api.recoupable.com/api/tasks", {
+const response = await fetch("https://api.recoupable.dev/api/tasks", {
headers: {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY",
@@ -126,7 +126,7 @@ For full documentation on the Tasks API including filtering options, see the [Ta
If you're a human building an integration, you can also create API keys from the web console instead of the signup endpoint:
-1. Navigate to the [Recoup API Keys Management Page](https://chat.recoupable.com/keys)
+1. Navigate to the [Recoup API Keys Management Page](https://chat.recoupable.dev/keys)
2. Sign in with your account
3. Enter a descriptive name (e.g. "Production Server")
4. Click **Create API Key**
diff --git a/workflows/create-artist.mdx b/workflows/create-artist.mdx
index a172c6f7..a0ae33aa 100644
--- a/workflows/create-artist.mdx
+++ b/workflows/create-artist.mdx
@@ -9,7 +9,7 @@ The chain is 8 sequential API calls. Long deterministic chains executed from pro
## Prerequisites
-- `$RECOUP_ACCESS_TOKEN` — Bearer token for `api.recoupable.com`
+- `$RECOUP_ACCESS_TOKEN` — Bearer token for `api.recoupable.dev`
- `$RECOUP_ORG_ID` — the org the artist should belong to (recommended in sandboxes)
- An artist name to create (e.g. `ARTIST_NAME="The Weeknd"`)
@@ -74,7 +74,7 @@ If every item is checked, the artist is fully set up — confirm with the user b
## Step 1: Create the artist
```bash
-ARTIST_RESPONSE=$(curl -sS -X POST "https://api.recoupable.com/api/artists" \
+ARTIST_RESPONSE=$(curl -sS -X POST "https://api.recoupable.dev/api/artists" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg name "$ARTIST_NAME" --arg org "$RECOUP_ORG_ID" \
@@ -92,7 +92,7 @@ See [Create Artist](/api-reference/artists/create) for the full request/response
## Step 2: Find the canonical Spotify match
```bash
-SPOTIFY=$(curl -sS -G "https://api.recoupable.com/api/spotify/search" \
+SPOTIFY=$(curl -sS -G "https://api.recoupable.dev/api/spotify/search" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "q=$ARTIST_NAME" \
--data-urlencode "type=artist" \
@@ -126,7 +126,7 @@ See [Spotify Search](/api-reference/spotify/search) for the full query parameter
One `PATCH` covers the image and the Spotify social URL. Use **uppercase** platform keys in `profileUrls` (the API matches platforms case-sensitively — see the reference table below).
```bash
-curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
+curl -sS -X PATCH "https://api.recoupable.dev/api/artists/$ARTIST_ID" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg image "$SPOTIFY_IMAGE_URL" --arg url "$SPOTIFY_PROFILE_URL" \
@@ -146,7 +146,7 @@ Don't use `POST /api/research/deep` here — it tends to hang in sandboxes and r
Most structured research endpoints can take the provider artist ID, not the Spotify ID. Resolve it once and reuse it for the rest of step 4.
```bash
-LOOKUP=$(curl -sS -G "https://api.recoupable.com/api/research/lookup" \
+LOOKUP=$(curl -sS -G "https://api.recoupable.dev/api/research/lookup" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "spotifyId=$SPOTIFY_ARTIST_ID")
@@ -162,7 +162,7 @@ If the lookup fails, skip 4b–4d and just run 4e (web search). See [Artist Look
Returns bio, genres, social URLs, label, career stage, and basic metrics — most of what deep research used to paraphrase.
```bash
-PROFILE=$(curl -sS -G "https://api.recoupable.com/api/research/profile" \
+PROFILE=$(curl -sS -G "https://api.recoupable.dev/api/research/profile" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$RESEARCH_ARTIST_ID")
```
@@ -174,7 +174,7 @@ See [Artist Profile](/api-reference/research/profile) for the response schema.
Career milestones, trajectory, and career-stage classification — covers the "notable achievements" portion of what deep research returned.
```bash
-CAREER=$(curl -sS -G "https://api.recoupable.com/api/research/career" \
+CAREER=$(curl -sS -G "https://api.recoupable.dev/api/research/career" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$RESEARCH_ARTIST_ID")
```
@@ -186,7 +186,7 @@ See [Career Timeline](/api-reference/research/career) for the response schema.
Replaces the "playlists / radio rotations / editorial features" portion of the deep-research Spotify-presence query.
```bash
-PLAYLISTS=$(curl -sS -G "https://api.recoupable.com/api/research/playlists" \
+PLAYLISTS=$(curl -sS -G "https://api.recoupable.dev/api/research/playlists" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$RESEARCH_ARTIST_ID")
```
@@ -198,7 +198,7 @@ See [Artist Playlists](/api-reference/research/playlists) for the response schem
Structured endpoints don't cover press coverage, cultural narrative, or recent feature/collab announcements. Fill that gap with a single web search.
```bash
-RESEARCH_WEB=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
+RESEARCH_WEB=$(curl -sS -X POST "https://api.recoupable.dev/api/research/web" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg name "$ARTIST_NAME" \
@@ -212,16 +212,16 @@ See [Web Search](/api-reference/research/web) for the request/response schema.
## Step 5: Pull the Spotify catalog
```bash
-TOP_TRACKS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/topTracks" \
+TOP_TRACKS=$(curl -sS -G "https://api.recoupable.dev/api/spotify/artist/topTracks" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$SPOTIFY_ARTIST_ID")
-ALBUMS=$(curl -sS -G "https://api.recoupable.com/api/spotify/artist/albums" \
+ALBUMS=$(curl -sS -G "https://api.recoupable.dev/api/spotify/artist/albums" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$SPOTIFY_ARTIST_ID")
# For each notable album, drill in (ALBUM_ID from $ALBUMS):
-ALBUM_DETAIL=$(curl -sS -G "https://api.recoupable.com/api/spotify/album" \
+ALBUM_DETAIL=$(curl -sS -G "https://api.recoupable.dev/api/spotify/album" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
--data-urlencode "id=$ALBUM_ID")
```
@@ -235,7 +235,7 @@ See [Spotify Top Tracks](/api-reference/spotify/artist-top-tracks), [Spotify Art
## Step 6: Search the web for additional socials
```bash
-SOCIALS_SEARCH=$(curl -sS -X POST "https://api.recoupable.com/api/research/web" \
+SOCIALS_SEARCH=$(curl -sS -X POST "https://api.recoupable.dev/api/research/web" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg name "$ARTIST_NAME" \
@@ -251,7 +251,7 @@ See [Web Search](/api-reference/research/web) for the request/response schema.
## Step 7: PATCH the artist with the discovered socials
```bash
-curl -sS -X PATCH "https://api.recoupable.com/api/artists/$ARTIST_ID" \
+curl -sS -X PATCH "https://api.recoupable.dev/api/artists/$ARTIST_ID" \
-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
diff --git a/workflows/generate-music-video.mdx b/workflows/generate-music-video.mdx
index 461648cb..3a908fbe 100644
--- a/workflows/generate-music-video.mdx
+++ b/workflows/generate-music-video.mdx
@@ -11,7 +11,7 @@ The fastest way to use this guide is to point an LLM at it directly — every pa
```
Generate a music video for The Weeknd – "Blinding Lights" using
-https://developers.recoupable.com/workflows/generate-music-video.md
+https://docs.recoupable.dev/workflows/generate-music-video.md
```
Swap in your own artist and song. The LLM will resolve the artist, kick off the async pipeline, poll until done, and pull back the final video URL.
@@ -24,7 +24,7 @@ Use the async path instead — same five steps, run server-side:
```bash
# Trigger
-RUN_IDS=$(curl -sS -X POST "https://api.recoupable.com/api/content/create" \
+RUN_IDS=$(curl -sS -X POST "https://api.recoupable.dev/api/content/create" \
-H "x-api-key: $RECOUP_API_KEY" -H "Content-Type: application/json" \
-d "$(jq -n --arg artist "$ARTIST_ACCOUNT_ID" --arg template "$TEMPLATE" \
'{artist_account_id: $artist, template: $template}')" \
@@ -32,7 +32,7 @@ RUN_IDS=$(curl -sS -X POST "https://api.recoupable.com/api/content/create" \
# Poll (every ~10s) until COMPLETED / FAILED / CANCELED / CRASHED
RUN_ID=$(echo "$RUN_IDS" | head -1)
-until STATUS=$(curl -sS "https://api.recoupable.com/api/tasks/runs?runId=$RUN_ID" \
+until STATUS=$(curl -sS "https://api.recoupable.dev/api/tasks/runs?runId=$RUN_ID" \
-H "x-api-key: $RECOUP_API_KEY" \
| jq -r '.runs[0].status') && \
[[ "$STATUS" =~ ^(COMPLETED|FAILED|CANCELED|CRASHED)$ ]]; do
@@ -40,7 +40,7 @@ until STATUS=$(curl -sS "https://api.recoupable.com/api/tasks/runs?runId=$RUN_ID
done
# Read the output
-curl -sS "https://api.recoupable.com/api/tasks/runs?runId=$RUN_ID" \
+curl -sS "https://api.recoupable.dev/api/tasks/runs?runId=$RUN_ID" \
-H "x-api-key: $RECOUP_API_KEY" \
| jq '.runs[0].output'
# -> { videoSourceUrl, imageUrl, captionText, template, lipsync, audio: {...} }
@@ -53,10 +53,10 @@ Polling fits inside short shell timeouts and survives session restarts. See [Tas
`POST /api/content/create` needs the artist's `account_id`. Three calls:
```bash
-ORG_ID=$(curl -sS "https://api.recoupable.com/api/organizations" \
+ORG_ID=$(curl -sS "https://api.recoupable.dev/api/organizations" \
-H "x-api-key: $RECOUP_API_KEY" | jq -r '.organizations[0].id')
-ARTIST_ACCOUNT_ID=$(curl -sS "https://api.recoupable.com/api/artists?org_id=$ORG_ID" \
+ARTIST_ACCOUNT_ID=$(curl -sS "https://api.recoupable.dev/api/artists?org_id=$ORG_ID" \
-H "x-api-key: $RECOUP_API_KEY" \
| jq -r --arg name "$ARTIST_NAME" '.artists[] | select(.name == $name) | .account_id')
```
@@ -91,7 +91,7 @@ The rest of this page walks the same steps you can run by hand or call individua
### Prerequisites
-- An auth credential for `api.recoupable.com`. Two options — pick one and use it for every call below:
+- An auth credential for `api.recoupable.dev`. Two options — pick one and use it for every call below:
- **API key** (`recoup_sk_…`, recommended for sandbox / agent use): pass as `-H "x-api-key: $RECOUP_API_KEY"`.
- One-shot agent: `POST /api/agents/signup` with an `agent+{unique}@recoupable.com` email returns the key immediately.
- Real-email signup: same endpoint with a real email mails a 6-digit code; complete with `POST /api/agents/verify`. See [Agents](/agents).
@@ -143,13 +143,13 @@ EOF
Templates carry the prompt, reference images, and styling that drive the rest of the chain — you can't write a good Step 2 prompt without them. List, pick, then fetch detail:
```bash
-curl -sS "https://api.recoupable.com/api/content/templates" \
+curl -sS "https://api.recoupable.dev/api/content/templates" \
-H "x-api-key: $RECOUP_API_KEY" \
| jq -r '.templates[] | "\(.id) — \(.description)"'
TEMPLATE="album-record-store" # or artist-caption-{bedroom,outside,stage}
-TEMPLATE_DETAIL=$(curl -sS "https://api.recoupable.com/api/content/templates/$TEMPLATE" \
+TEMPLATE_DETAIL=$(curl -sS "https://api.recoupable.dev/api/content/templates/$TEMPLATE" \
-H "x-api-key: $RECOUP_API_KEY")
```
@@ -168,7 +168,7 @@ PROMPT=$(echo "$TEMPLATE_DETAIL" | jq -r '.image.prompt')
REFS=$(echo "$TEMPLATE_DETAIL" | jq -c '[.image.reference_images[]?]')
# $REFS is 5–15 URLs depending on the template — pass all of them via images[]
-IMAGE_URL=$(curl -sS -X POST "https://api.recoupable.com/api/content/image" \
+IMAGE_URL=$(curl -sS -X POST "https://api.recoupable.dev/api/content/image" \
-H "x-api-key: $RECOUP_API_KEY" -H "Content-Type: application/json" \
-d "$(jq -n --arg prompt "$PROMPT" --argjson refs "$REFS" \
--arg ref "$REFERENCE_IMAGE_URL" \
@@ -190,7 +190,7 @@ Same endpoint for both, swap `type`. Skip if you don't need the resolution bump.
```bash
# Image (after step 2)
-IMAGE_URL=$(curl -sS -X POST "https://api.recoupable.com/api/content/upscale" \
+IMAGE_URL=$(curl -sS -X POST "https://api.recoupable.dev/api/content/upscale" \
-H "x-api-key: $RECOUP_API_KEY" -H "Content-Type: application/json" \
-d "$(jq -n --arg url "$IMAGE_URL" '{url: $url, type: "image"}')" \
| jq -r '.url')
@@ -207,7 +207,7 @@ Pass the image and a short motion prompt. For lipsync, also pass a presigned `au
```bash
MOTION=$(echo "$TEMPLATE_DETAIL" | jq -r '.video.movements[0] // "Slow camera drift, subtle subject motion"')
-VIDEO_URL=$(curl -sS --max-time 360 -X POST "https://api.recoupable.com/api/content/video" \
+VIDEO_URL=$(curl -sS --max-time 360 -X POST "https://api.recoupable.dev/api/content/video" \
-H "x-api-key: $RECOUP_API_KEY" -H "Content-Type: application/json" \
-d "$(jq -n --arg image "$IMAGE_URL" --arg prompt "$MOTION" \
'{image_url: $image, prompt: $prompt, aspect_ratio: "9:16"}')" \
@@ -225,7 +225,7 @@ See [Generate Video](/api-reference/content/generate-video).
```bash
TOPIC="Song: \"$SONG_TITLE\". Lyrics: \"$SONG_LYRICS_CLIP\". Artist: $ARTIST_NAME."
-CAPTION_RESPONSE=$(curl -sS -X POST "https://api.recoupable.com/api/content/caption" \
+CAPTION_RESPONSE=$(curl -sS -X POST "https://api.recoupable.dev/api/content/caption" \
-H "x-api-key: $RECOUP_API_KEY" -H "Content-Type: application/json" \
-d "$(jq -n --arg topic "$TOPIC" --arg template "$TEMPLATE" \
'{topic: $topic, template: $template, length: "short"}')")