recoup-api
Recoupable API
Call the Recoupable production API to fetch artist data, social metrics, org context, research, and to trigger platform operations.
- Base URL:
https://recoup-api.vercel.app/api - LLM-readable docs:
https://developers.recoupable.com— Mintlify site. Use/llms.txtfor the endpoint index,/llms-full.txtfor full content, and the OpenAPI JSONs listed below for machine-readable schemas.
Authentication
Your sandbox receives a short-lived access token in RECOUP_ACCESS_TOKEN. Use it as a Bearer token on every request:
curl -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
https://recoup-api.vercel.app/api/artists/{artistId}/socials
If RECOUP_ACCESS_TOKEN is empty, the user is not authenticated — tell them to sign in rather than retrying.
Org scoping (RECOUP_ORG_ID)
When running inside a sandbox, the environment also exposes RECOUP_ORG_ID — the organization the sandbox was opened for. The access token is account-scoped (it covers every org the account belongs to), so when you use it with unscoped list endpoints like GET /api/artists you will get results from all of that account's orgs, not just the one this sandbox represents. That mismatch surprises accounts.
When RECOUP_ORG_ID is set, scope list/query endpoints to it:
# Artists for this sandbox's org only
curl -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
"https://recoup-api.vercel.app/api/organizations/$RECOUP_ORG_ID/artists"
For the Recoup CLI, pass --org "$RECOUP_ORG_ID" on commands that accept it. If RECOUP_ORG_ID is unset, you are not in an open-agents sandbox — fall back to account-scoped calls as normal.
Sandbox-inventory shortcut: for bare "what artists / orgs do I have" questions, prefer reading the local artists/*/RECOUP.md tree instead of calling the API at all — the filesystem is authoritative for this sandbox. See the artist-workspace skill for the walkthrough.
Docs Map
The full endpoint surface is organized into the sections below. Use this map to pick the right area, then pull the detailed docs for just that area (see Finding an endpoint) instead of fetching everything.
Account & Identity
- Accounts — create/get/update accounts, add artists to account
- Organizations — create/list orgs, add artists to org
- Workspaces — create workspaces
- Subscriptions — get subscriptions, create Stripe checkout session
- Agents — agent signup, email verification
- Admins — admin-only: agent sign-ups, coding/content agent Slack tags, Resend emails, Privy logins, sandbox stats, org repo commit stats
Artists & Content
- Artists — create/get/delete, get socials, pin/unpin, get profile (across all platforms), trigger socials scrape
- Posts — get artist posts across platforms
- Comments — get comments for an artist or a specific post
- Fans — get social profiles of an artist's fans
- Songs — create/get songs by ISRC, manage catalogs (CRUD + add/remove songs), analyze songs via audio LM, list analyze presets
- Content Creation — pipeline trigger, video/image/caption generation, ffmpeg edits, video analysis, upscale, cost estimate, audio transcription, templates
Research (Chartmetric + Web)
One section covering most music-industry lookup work:
- Discovery: search, profile, similar artists, discover by criteria, people search, lookup by URL
- Catalog: albums, tracks, track playlists
- Metrics: artist rank, platform metrics (14 platforms), audience demographics, career timeline, listener cities, milestones, charts
- Surface: playlist, playlist placements, venues, radio stations, festivals, genres, curator
- Insights: AI insights, social URLs, instagram posts
- Web: enrich, extract URL, deep research, web search
Social Integrations
- Social Media — get social posts from a profile, trigger scrape
- Instagram Integration — comments, profiles (bulk)
- Spotify Integration — search, artist, artist albums, artist top tracks, album
- Twitter/X Integration — search tweets, get trends
- Connectors — list/authorize/disconnect third-party OAuth integrations
- Connector actions — execute external operations (Google Docs/Sheets/Drive edits, Gmail, TikTok, Instagram) via shared connections. See the section below.
- Apify Integration — scraper run results
- Transcription — Whisper audio transcription
Chat & Agents
- Chat — create/get/delete chats, messages, AI generate/stream (Vercel AI SDK compatible), update, copy, compact
- Content Agent — Slack webhook + task callback (internal)
- Pulses — list/update pulses
- Notifications — send notification email to the authenticated account
- Tasks — create/get/update/delete scheduled tasks, get task run history
- Image Generation — standalone AI image gen (also available scoped under Content Creation)
Developer & Infrastructure
- Sandboxes — create/setup/list/delete sandboxes, get file contents, upload files, update snapshot
Guides (non-endpoint pages)
Authentication · CLI · MCP · Quickstart.
OpenAPI specs
Machine-readable schemas for the major sections: accounts.json, social.json, releases.json, research.json, content.json (served at https://developers.recoupable.com/<name>.json).
Finding an endpoint
Once you know the section, pull just that section's docs instead of the whole index. Example patterns:
# Find the exact path + params for a specific endpoint
curl -s https://developers.recoupable.com/llms-full.txt | grep -A 30 -i "similar artists"
# Pull the OpenAPI schema for one area
curl -s https://developers.recoupable.com/research.json | jq '.paths | keys'
Do not guess exact paths, parameter names, or response shapes — fetch the relevant section first.
Example request
# Get all socials for an artist
curl -sS -H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" \
"https://recoup-api.vercel.app/api/artists/{artistId}/socials" | jq
jq is preinstalled in the sandbox.
Multi-step workflows
For multi-endpoint sequences that need a specific order, follow the published workflow guides instead of inventing the chain yourself. The guide tells you which endpoint to call at each step, what to capture for the next step, and which steps are intentionally skipped from a sandbox context.
| Workflow | Guide | Driver |
|---|---|---|
| Create + research a new artist (full enrichment chain — POST artist, Spotify match, profile/socials/knowledges, structured research via Chartmetric profile/career/playlists + web, KB synthesis) | https://developers.recoupable.com/workflows/create-artist | artist-workspace skill — scaffolds a RECOUP.md checklist file, ticks each step on completion |
Trigger to load a workflow guide: any phrase like "create a new artist", "onboard X", "add this artist", or any request that requires more than one endpoint to complete.
For the create-artist chain, invoke the artist-workspace skill first — it scaffolds artists/{slug}/RECOUP.md with one checkbox per workflow step, and the agent then drives execution from that file (tick + persist outputs to frontmatter after every step). The workflow guide above is the curl-by-curl reference for each step's request shape, but the checklist is the source of truth for what's done. The chain has 8 sequential calls and skipping any leaves the artist partially populated.
Connector actions (Google Docs/Sheets/Drive, Gmail, TikTok, Instagram)
For reads/writes outside Recoup — editing a Google Doc by URL, syncing a sandbox file with Drive, sending an email, posting a TikTok — use the platform's shared third-party connections via two endpoints:
GET /api/connectors/actions— catalog of every available action with itsslug,description,parametersJSON Schema,connectorSlug, andisConnected. See docs.POST /api/connectors/actions— execute one byactionSlugwithparametersmatching its schema. See docs.
Slugs are always UPPERCASE_SNAKE_CASE (e.g. GOOGLEDOCS_INSERT_TEXT_ACTION, GMAIL_FETCH_EMAILS). Auth is the same RECOUP_ACCESS_TOKEN Bearer. Always pull the parameters schema from the catalog before executing — Composio's shapes vary per action.
Worked example: Google Doc ↔ sandbox file sync
When the user pastes a docs.google.com/document/d/{ID}/edit URL, extract the ID and pick the right Google Docs action — GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT to read, GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN to replace the whole doc, GOOGLEDOCS_INSERT_TEXT_ACTION to insert at an index, GOOGLEDOCS_REPLACE_ALL_TEXT for find-replace:
DOC_ID=$(echo "$DOC_URL" | sed -nE 's|.*/document/d/([^/]+).*|\1|p')
EXEC="https://recoup-api.vercel.app/api/connectors/actions"
AUTH=(-H "Authorization: Bearer $RECOUP_ACCESS_TOKEN" -H "Content-Type: application/json")
# Read the doc into a local file.
curl -sS -X POST "${AUTH[@]}" "$EXEC" \
-d "$(jq -n --arg id "$DOC_ID" '{actionSlug:"GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT", parameters:{document_id:$id}}')" \
| jq -r '.result.data.text' > artists/$ARTIST_SLUG/notes.md
# (edit notes.md locally — agent edits, git diff, etc.)
# Push it back, replacing the doc's content.
curl -sS -X POST "${AUTH[@]}" "$EXEC" \
-d "$(jq -n --arg id "$DOC_ID" --rawfile md artists/$ARTIST_SLUG/notes.md \
'{actionSlug:"GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN", parameters:{document_id:$id, markdown_content:$md}}')"
The Google Doc and the local file are two views of the same content — commit the local copy with the artist's other workspace files.
Trigger heuristic: external URLs (docs.google.com, drive.google.com, sheets.google.com), or phrases like "edit this doc", "send an email", "post on TikTok". Internal Recoup resources (artists, socials, research) use the dedicated endpoints in the Docs Map above.
Troubleshooting
| Error | Meaning | Fix |
|---|---|---|
| 401 | Token missing, invalid, or expired | Check RECOUP_ACCESS_TOKEN is set; if the prompt has been running a long time, ask the user to resend |
| 403 | User lacks access to the resource | Confirm the user has permission for the org/artist being queried |
| 404 | Endpoint not found | Re-check the Docs Map above; the endpoint may have moved or been renamed |
| 5xx | Server error | Retry once; if persistent, surface the status to the user |
When NOT to use this skill
- Reading/writing files inside the sandbox — use the filesystem tools.
- Calling Chartmetric, Spotify, or other third-party APIs directly — prefer the Recoup Research endpoints above (they wrap Chartmetric with our auth), or use the dedicated skill if one exists (e.g.
chartmetric). - Reading the user's git repo contents — that's already mounted in the working directory.
More from recoupable/skills
artist-workspace
How to work in artist directories — including creating, enumerating, and editing them. Use when creating or onboarding a new artist ("create artist", "onboard X", "add this artist", "set up a new artist") — this skill scaffolds the artist's `RECOUP.md` checklist file and drives the multi-step setup from it. Use when adding or updating artist context (identity, brand, voice, audience), adding songs, organizing files inside an artist directory, or figuring out where something belongs. Also use when the account asks inventory questions like "what artists do I have", "list my artists", "which orgs am I in", "what's in this sandbox" — the filesystem tree is the authoritative answer. And use when the account mentions an artist by name and the task involves their files, context, or content — even if they don't say "artist directory." This includes tasks like researching an artist, creating content for an artist, updating an artist's brand, or adding a face guide.
72trend-to-song
Create songs and content campaigns from trending cultural moments. Use when someone identifies a trending topic, viral moment, reality TV drama, meme, or cultural event and wants to turn it into a song and distribution strategy. Also triggers on "make a song about this trend," "capitalize on this moment," "reverse engineer from the market," "cultural moment to song," "trend-jack," or "burner page strategy." This flips the traditional music workflow — instead of song-first then marketing, you go market-first then song.
2songwriting
Guide for writing and evaluating song lyrics and concepts. Use when brainstorming song ideas, writing lyrics, evaluating song drafts, refining hooks, or improving existing songs. Applies the 7 C's framework to ensure songs are memorable, clear, and authentic.
2getting-started
Set up Recoupable from scratch — install the CLI, get an API key, and make your first call. Use this skill when the user says "set up Recoupable", "install Recoup", "get an API key", "connect to Recoup", "use Recoupable", "onboard to Recoup", "how do I start", or when an agent needs to configure itself to use the Recoupable platform.
2chartmetric
Chartmetric music analytics API for streaming data, playlist placements, audience demographics, and competitive analysis. Use when the user needs artist/track/album analytics, playlist tracking, streaming metrics, audience insights, chart positions, similar artists, or any music industry data. Triggers on requests involving Spotify followers, monthly listeners, TikTok trends, Instagram audience, playlist pitching research, or competitive artist analysis.
2streaming-growth
Strategy for growing a new or early-stage music artist to key streaming milestones on Spotify and other DSPs. Use when someone asks about getting more streams, unlocking Spotify Showcase or Marquee, increasing Spotify Popularity score, playlist pitching, DSP advertising, or growing an artist from near-zero. Triggers on "how do we get more streams," "unlock Spotify ads," "playlist push," "get to a thousand listeners," "artist growth strategy," or "Spotify Popularity score.
2