Skip to content

Commit 6c6d199

Browse files
sidneyswiftsweetmantechclaude
authored
docs: add Research API and CLI reference (#85)
* docs: add Research API endpoints and CLI commands Documentation-first spec for the `recoup research` primitive — 16 API endpoints under /api/research/ covering artist search, metrics (14 platforms), audience demographics, cities, similar artists, playlists, discography, career, insights, discovery, genres, festivals, web search, and deep research. CLI docs cover all subcommands with flags, workflow examples, and links to the API reference. Provider-agnostic — no mention of underlying data sources. Made-with: Cursor * fix: remove credit mentions, clean up ID descriptions Follow the same pattern as other API endpoints — no credit costs in descriptions. Remove "music industry database" references. ID params just say "returned by the search endpoint" without exposing the underlying provider. Made-with: Cursor * fix: name-based lookups — no IDs exposed to users All research endpoints now accept an artist name, Recoup artist ID (UUID), or numeric ID. The API resolves the artist internally. Users never need to know about underlying provider IDs. CLI docs updated to show name-based examples throughout. Made-with: Cursor * feat: add 6 missing research endpoints from chartmetric skill Lookup by URL, Social URLs, Instagram Posts, Track details, Playlist details, Curator details. Now at full parity with every script in the chartmetric skill — 22 endpoints total. Made-with: Cursor * feat: add research templates — pre-built multi-step workflows 11 templates matching the chartmetric skill's advanced workflows: full-report, playlist-pitching, tiktok-pipeline, tour-routing, discovery, catalog-optimization, competitive-analysis, viral-autopsy, market-expansion, collaboration-finder, and release-timing. Two new endpoints: GET /api/research/templates (list them) and POST /api/research/run (execute one against an artist by name). CLI: recoup research templates + recoup research run <template> "Artist" Made-with: Cursor * fix: scope artist name/ID rule to artist-scoped subcommands only Per CodeRabbit review — discover, genres, festivals, and web don't take an artist identifier. Made-with: Cursor * revert: remove templates and run endpoints Templates belong in the skill layer, not the API. The research API provides primitives — the skill teaches the agent how to chain them for specific workflows. Made-with: Cursor * refactor: flat routes with query params to match Recoup API pattern Replaced nested path params (/api/research/artist/{id}/stat/{source}) with flat routes and query params (/api/research/metrics?artist=Drake&source=spotify). Now consistent with how every other Recoup endpoint works. The artist param accepts a name or UUID — the API resolves internally. Made-with: Cursor * fix: address CodeRabbit review feedback - Genre description now points to GET /api/research/discover - Added callbackSecret to securitySchemes (pre-existing gap) - Added security: [] override for Slack webhook endpoint - Documented valid --platform values for audience command - Fixed all CLI endpoint references to use flat route format Made-with: Cursor * docs: clarify ResearchProxyResponse is intentionally untyped Response shapes come from a third-party provider and vary by endpoint. Concrete schemas will be added after the API implementation is complete and response shapes are known. Made-with: Cursor * feat: add concrete response schemas for all research endpoints 35 typed schemas derived from Chartmetric API response analysis. Responses are normalized — no provider-specific obj wrapper, clean field names, typed properties. Endpoints with known fields (search, cities, similar, playlists, albums, tracks, insights, curator, discover, genres, festivals) have concrete schemas. Endpoints with variable shapes (profile, metrics, audience, career, instagram posts) have descriptions with additionalProperties for flexibility. Made-with: Cursor * fix: consolidate repeated artist-ID guidance per review nitpick Made-with: Cursor * fix: add missing descriptions to required platform params Made-with: Cursor * feat: add people, extract, and enrich endpoints to docs 3 new POST endpoints: - /api/research/people — search for music industry professionals - /api/research/extract — scrape URLs into clean markdown - /api/research/enrich — structured data enrichment with JSON schema 8 new response schemas, 3 MDX pages, CLI docs updated. Total documented: 25 research endpoints. Made-with: Cursor * feat: add milestones, venues, rank, charts, radio to docs 5 new endpoints with OpenAPI schemas + MDX pages + CLI docs. Total documented: 30 research endpoints. Made-with: Cursor * fix: replace Kaash Paige examples with Drake Made-with: Cursor * fix: address review feedback — CLI/spec mismatches and empty schemas 1. Fix track endpoint reference: GET /api/research/track (query param), not GET /api/research/track/{id} (path param) 2. Remove undocumented --tiktok-followers flag from discover CLI docs 3. Add missing --latest flag to charts CLI docs 4. Add missing --limit flag to discover CLI docs 5. Populate 8 empty response schemas with representative fields: ResearchProfileResponse, ResearchMetricsResponse, ResearchAudienceResponse, ResearchCareerResponse, ResearchTrackResponse, ResearchLookupResponse, ResearchInstagramPostsResponse, ResearchPlaylistResponse Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: tighten discover endpoint description to match actual params Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add missing API reference links and correct path notation in CLI docs - Add See link for search, discography, and reference data sections - Fix playlist/curator references to use query params, not path params Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Sweets Sweetman <sweetmantech@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c20e95f commit 6c6d199

33 files changed

+7619
-4871
lines changed

api-reference/openapi.json

Lines changed: 7137 additions & 4871 deletions
Large diffs are not rendered by default.

api-reference/research/albums.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Albums'
3+
openapi: 'GET /api/research/albums'
4+
---
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Audience Demographics'
3+
openapi: 'GET /api/research/audience'
4+
---

api-reference/research/career.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Career Timeline'
3+
openapi: 'GET /api/research/career'
4+
---

api-reference/research/charts.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Charts'
3+
openapi: 'GET /api/research/charts'
4+
---

api-reference/research/cities.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Listener Cities'
3+
openapi: 'GET /api/research/cities'
4+
---

api-reference/research/curator.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Curator'
3+
openapi: 'GET /api/research/curator'
4+
---

api-reference/research/deep.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Deep Research'
3+
openapi: 'POST /api/research/deep'
4+
---
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Discover Artists'
3+
openapi: 'GET /api/research/discover'
4+
---

api-reference/research/enrich.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: 'Enrich'
3+
openapi: 'POST /api/research/enrich'
4+
---

0 commit comments

Comments
 (0)