music nerd

ResearchContinue question research

Research

Continue question research

Service-only, idempotent transition of a candidate job into ordinary bounded research. Send no body or an empty JSON object; client routing, counters, permissions and source overrides are rejected. The same job ID, original neutral request, activity, quota lane, created time and model/provider counters are preserved. A candidate job transitions atomically once under the artist/job lock, subject to current claim, original lifetime and the one-active-question limit. Repeated calls return the current job status. Clients must fence an in-flight candidate answer lease before continuing, retain answer registration, and retry the checked answer against the new current references. This operation does not extend budgets, expiry or reset answer retry limits. It never decides that candidate evidence is sufficient. New-budget continuation preserves the single global saved admission and does not charge outside allowance; that is reserved only if validated external collection becomes necessary.

POST/api/artist/{id}/research/questions/{jobId}/continue
POST/api/artist/{id}/research/questions/{jobId}/continue

Service-only, idempotent transition of a candidate job into ordinary bounded research. Send no body or an empty JSON object; client routing, counters, permissions and source overrides are rejected. The same job ID, original neutral request, activity, quota lane, created time and model/provider counters are preserved. A candidate job transitions atomically once under the artist/job lock, subject to current claim, original lifetime and the one-active-question limit. Repeated calls return the current job status. Clients must fence an in-flight candidate answer lease before continuing, retain answer registration, and retry the checked answer against the new current references. This operation does not extend budgets, expiry or reset answer retry limits. It never decides that candidate evidence is sufficient. New-budget continuation preserves the single global saved admission and does not charge outside allowance; that is reserved only if validated external collection becomes necessary.

Authorization

X-MusicNerd-Research-Keystringrequired

Server-only MUSICNERD_RESEARCH_API_KEY. Public evidence research only; never grants review or interview-history access. Kept in this tab only.

Path

idstringrequired

jobIdstringrequired

cURL
curl --request POST \
  --url 'https://musicnerd-api.vercel.app/api/artist/{id}/research/questions/{jobId}/continue'

Send the request to see the live response here.

Authorizations

X-MusicNerd-Research-Keystringheaderrequired

Server-only MUSICNERD_RESEARCH_API_KEY. Public evidence research only; never grants review or interview-history access.

Path Parameters

idstringrequired
jobIdstringrequired

Response

application/json

Persisted acknowledgement

statusanyrequired
jobIdstringrequired

format: uuid

stagestring · enumrequired

Values: "checking_saved", "searching", "reading", "transcribing", "waiting_provider", "complete", "unresolved", "failed", "cancelled"

messagestringrequired
providerstring | null
updatedAtstringrequired

format: date-time

reusedboolean
referencesarray<Reference>required

maxItems: 6

Item properties for references
sourceIdstringrequired

Stable current source reference, including latest:<spotify|deezer|inprocess>:<64hex> provider snapshot originals. Removing/changing the connected account or successfully refreshing away a hidden/removed item makes its old reference unavailable; changed originals have a different revision.

revisionstringrequired
startintegerrequired

minimum: 0

endintegerrequired

minimum: 0

textstringrequired
urlstringrequired
curationstring · enumrequired

Values: "approved", "pending"

evidenceKindstring · enum

Values: "original_text", "caption", "provider_transcript"

speakerstring · enum

Values: "not_applicable", "unverified"

publishedAtstring | null
retrievedAtstring | null
truncatedboolean | null
activityDatestring

Optional provider activity date. Preserves YYYY, YYYY-MM or full date/time precision. Never substitutes for source publication time.

activityDateKindstring · enum

Meaning of activityDate. Exact catalog release-date claims require original catalog text, not publishedAt.

Values: "release", "moment"

limitationsarray<string>required
Item properties for limitations

string

outsideResearchReasonstring · enum

Outside collection was not admitted. Saved sources may still provide a bounded answer. New quota-blocked jobs include a shared quota scope and reset time; retry from a new question after reset, without restarting this terminal job. Older saved-only jobs can omit reset metadata.

Values: "quota"

selectionstring · enum

Optional for legacy jobs. candidates is an unassessed evidence selection, not an answer or a sufficiency finding. If the checked answer is insufficient, continue this same job. research means the normal bounded research path.

Values: "candidates", "research"

quotaScopestring · enum

Shared operational budget that blocked this work, never a personal visitor limit.

Values: "saved_global", "outside_artist", "outside_global"

retryAfterSecondsinteger

Seconds until resetAt, rounded up. A current status read recomputes this duration; new traffic can consume later capacity.

minimum: 0

resetAtstring

Actual rolling-window boundary calculated when the quota was checked.

format: date-time