get_publish_status
What buyers see, unpublished changes, and what blocks a publish.
/v1/guides/{productId}/publishWhether the guide is live, the live version and when it went live, whether the draft holds changes buyers do not see yet (and the last edit time), whether a publish is still building (pendingSince), blocking: the publish gates, the same check publish_changes enforces, and warnings that do not block (facts past their review-by date, link problems). Read it before publish_changes, and poll it afterwards until pendingSince is null and published.version went up. Any key can read it.
curl "https://sceniq.earth/api/v1/guides/j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2/publish" \
-H "Authorization: Bearer $SCENIQ_API_KEY"Path parameters
- productIdstring · guide idrequired
Id of the guide (a product of type map). From
list_guidesorcreate_guide.
Returns
200 OK with PublishStatus: What buyers see and what a publish would do.
- productIdstring · guide idrequired
The guide's id.
- namestringrequired
The guide's title.
- statusstringrequired
draft, published or archived.
draftpublishedarchived - livebooleanrequired
true when the guide is on sale.
- publishedobject or nullrequired
What buyers see, or null before the first build.
Show 2 fieldsHide fields
- publishedAtnumberrequired
When the live version went live (Unix time in milliseconds).
- versionnumber or nullrequired
The live version's number.
- hasUnpublishedChangesbooleanrequired
true when the draft holds changes buyers do not see yet.
- lastEditAtnumber or nullrequired
When the draft last changed.
- pendingSincenumber or nullrequired
When a publish started building; null when none is running.
The publish gates that are open.
Show 2 fieldsHide fieldsof PublishGate
- codestringrequired
Which gate is open.
agreement_outdatedno_spotsmissing_coordinatesmissing_photosno_price - messagestringrequired
What to fix, in plain words.
- warningsarray of objectsrequired
Problems that do not block:
review_due,stale_facts,link_problems.Show 2 fieldsHide fields
- codestringrequired
A stable code for the warning (see the readiness guide for the list).
- messagestringrequired
What it means, in plain words.
- canPublishChangesbooleanrequired
true when
publish_changeswould queue a build now. - nextStepstringrequired
One sentence on what to do next.
- reviewUrlstringrequired
The guide in the studio.
{
"productId": "j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2",
"name": "American West: Parks at First Light",
"status": "published",
"live": true,
"published": {
"publishedAt": 1790241240000,
"version": 3
},
"lastEditAt": 1790586840000,
"blocking": [],
"warnings": [
{
"code": "link_problems",
"message": "1 link(s) look dead, parked or redirected; see get_link_report"
}
],
"reviewUrl": "https://creators.sceniq.earth/products/j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2",
"hasUnpublishedChanges": true,
"pendingSince": null,
"canPublishChanges": true,
"nextStep": "Ready. Call publish_changes only when the creator asked you to publish."
}Errors
Every error is { error: { code, message } }. Act on the code.
- 400invalid_argumentA required field is missing, a field is unknown, or a value does not match its type (the Convex validator's path and value are in the message).
- 401unauthenticatedThe request carries no key. Send it as Authorization: Bearer sk_sceniq_... (or X-Api-Key).
- 401invalid_api_keyThe key is unknown, revoked or expired.
- 403forbiddenThe key belongs to a creator account that is no longer active.
- 404not_foundThe id does not exist or belongs to another creator. The two answers are identical on purpose, so ids never reveal what exists.
- 429rate_limitedOver a limit: requests per key per minute, per creator per hour, uploads per key per minute, or check_links per guide per hour.
- 500internal_errorAn unexpected failure. The message is hidden on purpose.