Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api-reference/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@
},
"/api/artists": {
"get": {
"description": "Retrieve artists accessible to the authenticated account. The account is derived from the API key or Bearer token. When org_id is omitted, returns only the account's own artists. Pass org_id to view artists in a specific organization. Pass account_id to filter to a specific account the API key has access to.",
"description": "Retrieve artists. Artists can have socials. Artists can create songs and content.",
"parameters": [
{
"name": "account_id",
Expand Down
4 changes: 2 additions & 2 deletions authentication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,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://recoup-api.vercel.app/api/tasks" \
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Use one canonical API base URL here to avoid spec/docs drift.

These two examples now point to recoup-api.vercel.app, but api-reference/openapi.json still declares https://api.recoupable.com and the PR objective says to revert to that domain. This mismatch will confuse users and breaks consistency.

Proposed fix
-curl -X GET "https://recoup-api.vercel.app/api/tasks" \
+curl -X GET "https://api.recoupable.com/api/tasks" \
   -H "x-api-key: YOUR_API_KEY"
-curl -X GET "https://recoup-api.vercel.app/api/tasks" \
+curl -X GET "https://api.recoupable.com/api/tasks" \
   -H "Authorization: Bearer YOUR_PRIVY_JWT"

Also applies to: 60-60

🧰 Tools
πŸͺ› Betterleaks (1.1.1)

[high] 38-39: Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.

(curl-auth-header)

πŸ€– Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@authentication.mdx` at line 38, Replace the non-canonical domain used in the
curl examples by updating the URL string
"https://recoup-api.vercel.app/api/tasks" (and the other occurrence at line 60)
to the canonical API base "https://api.recoupable.com" so the authentication.mdx
examples match api-reference/openapi.json; ensure both instances are changed to
avoid docs/spec drift.

-H "x-api-key: YOUR_API_KEY"
```

Expand All @@ -57,7 +57,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://recoup-api.vercel.app/api/tasks" \
-H "Authorization: Bearer YOUR_PRIVY_JWT"
```

Expand Down
16 changes: 8 additions & 8 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,14 +139,6 @@
{
"tab": "Content",
"groups": [
{
"group": "Posts & Comments",
"pages": [
"api-reference/posts/get",
"api-reference/post/comments",
"api-reference/comments/get"
]
},
{
"group": "Content Creation",
"pages": [
Expand All @@ -163,6 +155,14 @@
"api-reference/content/estimate"
]
},
{
"group": "Posts & Comments",
"pages": [
"api-reference/posts/get",
"api-reference/post/comments",
"api-reference/comments/get"
]
},
{
"group": "Content Agent",
"pages": [
Expand Down
12 changes: 6 additions & 6 deletions index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Use the Recoup API to build your record label. Access research, co

# Welcome to the Recoup API

Use the Recoup API to build your record label. Access artist analytics, fan segmentation, AI-powered chat, content creation, and task automation to power your music business.
Use the Recoup API to build your record label. Generate content, Access artist analytics, Manage catalogs, Team chats, and task automation to power your record labels.

## What is Recoup?

Expand Down Expand Up @@ -67,7 +67,7 @@ Keep your API key secure. Do not share it publicly or commit it to version contr

## API Sections

The API is organized into five main sections. Use these links to jump to the right area.
The API is organized into six main sections. Use these links to jump to the right area.

<CardGroup cols={2}>
<Card
Expand All @@ -89,7 +89,7 @@ The API is organized into five main sections. Use these links to jump to the rig
icon="comments"
href="/api-reference/chat/chats"
>
AI-powered conversations with artist context. Create, stream, and generate messages. Copy messages, delete trailing messages, and manage chat history.
Conversations with artist context. Create, stream, and generate messages. Copy messages, delete trailing messages, and manage chat history.
</Card>
<Card
title="Social Media"
Expand Down Expand Up @@ -122,7 +122,7 @@ The API is organized into five main sections. Use these links to jump to the rig
icon="robot"
href="/content-agent"
>
AI content creation agent accessible via Slack. Generates images, videos, and captions for artists automatically.
Content creation agent accessible via Slack. Generates images, videos, and captions for artists automatically.
</Card>
<Card
title="Authentication"
Expand All @@ -137,10 +137,10 @@ The API is organized into five main sections. Use these links to jump to the rig

If you are an LLM navigating these docs, here is a summary of the endpoint structure:

- **`/api/research/*`** β€” Artist research (search, lookup, profile, metrics, audience, cities, similar, urls, playlists, albums, tracks, career, insights, genres, festivals, web, deep, people, extract, enrich, milestones, venues, rank, charts, radio, discover, curator, playlist)
- **`/api/artists/*`** β€” Artist management (list, create, segments, socials, socials-scrape, profile)
- **`/api/research/*`** β€” Artist research (search, lookup, profile, metrics, audience, cities, similar, urls, instagram-posts, playlists, albums, track, tracks, career, insights, genres, festivals, web, deep, people, extract, enrich, milestones, venues, rank, charts, radio, discover, curator, playlist)
- **`/api/content/*`** β€” Content creation (create, generate-image, generate-video, generate-caption, transcribe-audio, edit, upscale, analyze-video, templates, validate, estimate)
- **`/api/chat/*`** β€” Chat (chats, artist, segment, messages, messages-copy, messages-trailing-delete, create, update, delete, generate, stream, compact)
- **`/api/artists/*`** β€” Artist management (list, create, segments, socials, socials-scrape, profile)
- **`/api/songs/*`** β€” Songs and catalogs (songs, create, analyze, analyze-presets, catalogs, catalogs-create, catalogs-delete, catalog-songs, catalog-songs-add, catalog-songs-delete)
- **`/api/tasks/*`** β€” Task automation (get, create, update, delete, runs)
- **`/api/spotify/*`** β€” Spotify (search, artist, artist-albums, artist-top-tracks, album)
Expand Down