Research
Advance research Runs one slice of queued research and returns. Research jobs (artist_research_jobs) run in slices that each fit one request; the web app's research pump calls this while an artist's page is open, and the scheduler resumes anything left. Safe to call concurrently: jobs are claimed atomically under a lease.
Pass artistId to run only that artist's jobs, and kinds to run only some kinds.
POST / api/ research/ advance
Try it Endpoint POST Check health Advance research Run the research scheduler Look again Request question research Read question research Review queue Review a discovery Read research original Onboarding chat turn Onboarding state Artist brief List artist sources Search original evidence Read an original source Interview history Research status Recover missing source text Read mandatory interview memory List active interview boundaries Save an explicit interview boundary Retract an interview boundary Restore saved interview Start interview sitting Save prepared question Save exact interview answer Finish interview sitting List saved interview responses Read an exact response Revise a saved response Review response versions POST / api/ research/ advance
Send Runs one slice of queued research and returns. Research jobs (artist_research_jobs) run in slices that each fit one request; the web app's research pump calls this while an artist's page is open, and the scheduler resumes anything left. Safe to call concurrently: jobs are claimed atomically under a lease.
Body bodyapplication/json
curl --request POST \
--url 'https://musicnerd-api.vercel.app/api/research/advance' \
--header 'Content-Type: application/json' \
--data '{
"artistId": "aab92f80-f9e1-4299-aa33-7dd85c8de5d3",
"kinds": [
"latest_refresh"
]
}'
Send the request to see the live response here.
curl --request POST \
--url 'https://musicnerd-api.vercel.app/api/research/advance' \
--header 'Content-Type: application/json' \
--data '{
"artistId": "aab92f80-f9e1-4299-aa33-7dd85c8de5d3",
"kinds": [
"latest_refresh"
]
}'
{
"status" : "ok" ,
"ran" : true ,
"jobId" : "6baabdd8-e8f3-4c09-8edb-71a71f7342ae" ,
"kind" : "social_ingest" ,
"artistId" : "aab92f80-f9e1-4299-aa33-7dd85c8de5d3" ,
"progress" : "collected 12 posts" ,
"done" : true
}
Authorizations None. This endpoint is public.
Body application/json artistIdstring
Run only this artist's jobs.
format: uuid
kindsarray<string · enum>
Run only jobs of these kinds.
minItems: 1
Item properties for kinds string · enum · "social_ingest", "caption_extract", "lore_refresh", "source_search", "latest_refresh"
Response Status 200 400 application/json A slice ran, or nothing was waiting (ran: false). A failure inside the slice is reported as { status: "error", error: "advance failed", ran: false } with status 200.
statusstring · enum required
Values: "ok"
ranboolean required
Whether a slice ran. false means nothing was claimable.
jobIdstring
The job the slice belonged to.
format: uuid
kindstring · enum
Values: "social_ingest", "caption_extract", "lore_refresh", "source_search", "latest_refresh"
artistIdstring
format: uuid
progressstring
A short description of what the slice did.
doneboolean
Whether the job finished with this slice.
waitingboolean
The job is waiting on an outside run (an Apify scrape); call again later.