All pages

Start a research report

Starts the same research report the dashboard runs, on a domain you have verified. There is no body: the report is about the domain in the path.

POST/v1/editions/{slug}/research

Parameters

ParamInNotes
slugpathThe domain UUID. Research reads the live web for this domain, so it must be one you have verified in Google Search Console.

Request

curl -X POST https://api.mastheads.app/v1/editions/3f9c1e84-2b7a-4d6e-9c15-8a0d7e6b4f21/research \
  -H "Authorization: Bearer mh_live_your_key_here"

Response

202 Accepted
{
  "id": "9d41b7c5-0e62-4a39-84d7-15be8c07f2a6",
  "status": "running"
}

A report is not an article job, so it is not on GET /v1/jobs/{id}. Poll GET /v1/editions/{slug}/research/{report_id} instead. That path answers the report's status while it runs and carries the finished report itself once it is done, and any key of yours can read it - reading a result you have already paid for spends nothing and does not need Full access.

Errors

StatusCodeWhen
401invalid_keyMissing, invalid, or revoked API key.
401account_closedThe account this key belongs to has been closed.
402plan_requiredThe account's current plan does not include the content API. This is checked on the request, not only when the key was made.
503unavailableThe plan or the data store could not be read. It refuses rather than guessing.
402payment_requiredA guard behind the door refused on plan or billing grounds. The message says which.
403key_read_onlyThe key was created as Read only. A key's permission is fixed when it is made, so create a new key with Full access.
403wrong_newsroomA full-access key spends only in the newsroom its owner was in when it was created. If that person now acts in a different newsroom, create a new key there. A read-only key is not gated this way.
403forbiddenA guard behind the door refused. The message says which.
404not_foundNo such domain on your account, or the path segment is not a UUID. Another tenant's domain is a 404, never a 403.
422invalid_paramsThe body did not validate: a missing or over-long input, an id that is not a UUID, more than 100 rows, or two rows sharing an id.
429rate_limitedOver this key's 20 paid actions an hour, or over its 120 requests/minute. Retry-After: 60, and nothing was started.

Every request needs a key - Authentication. The error shape and the full status table are on Rate limits & errors.