Commit 6c6d199
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
File tree
33 files changed
+7619
-4871
lines changed- api-reference
- research
33 files changed
+7619
-4871
lines changedLarge diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
0 commit comments