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"}')")