music nerd

ResearchAdvance research

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
POST/api/research/advance

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
cURL
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.

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

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 · enumrequired

Values: "ok"

ranbooleanrequired

Whether a slice ran. false means nothing was claimable.

jobIdstring

The job the slice belonged to.

format: uuid

kindstring · enum

The job's kind.

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.