cURL
curl --request GET \
--url https://api.nohead.io/v1/collections/{collection_id}/scheduled-changes \
--header 'Authorization: Bearer <token>'import { Nohead } from "@nohead/sdk"
const nohead = new Nohead()
for await (const change of nohead.records.scheduledChanges("posts", {
sort: "-at",
})) {
console.log(change)
}
from nohead import Nohead
nohead = Nohead()
for change in nohead.records.scheduled_changes("posts", sort="-at"):
print(change)
require "nohead"
nohead = Nohead::Client.new
nohead.records.scheduled_changes("posts", sort: "-at").each do |change|
puts change
end
{
"data": [
{
"object": "scheduled_change",
"action": "publish",
"at": "2026-09-27T12:00:00.000Z",
"record_id": "<string>",
"draft_id": "<string>"
}
],
"meta": {
"next_cursor": "<string>",
"has_more": true
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}Publishing
List scheduled changes
Every pending scheduled change of the collection’s records, soonest
first (sort=-at for the latest first): publishes and unpublishes
from records’ schedules, and merges from drafts’ (draft_id). One per
change, so a record due to publish and later unpublish appears twice.
Deleted records have none. Published-only API keys get 403.
GET
/
v1
/
collections
/
{collection_id}
/
scheduled-changes
cURL
curl --request GET \
--url https://api.nohead.io/v1/collections/{collection_id}/scheduled-changes \
--header 'Authorization: Bearer <token>'import { Nohead } from "@nohead/sdk"
const nohead = new Nohead()
for await (const change of nohead.records.scheduledChanges("posts", {
sort: "-at",
})) {
console.log(change)
}
from nohead import Nohead
nohead = Nohead()
for change in nohead.records.scheduled_changes("posts", sort="-at"):
print(change)
require "nohead"
nohead = Nohead::Client.new
nohead.records.scheduled_changes("posts", sort: "-at").each do |change|
puts change
end
{
"data": [
{
"object": "scheduled_change",
"action": "publish",
"at": "2026-09-27T12:00:00.000Z",
"record_id": "<string>",
"draft_id": "<string>"
}
],
"meta": {
"next_cursor": "<string>",
"has_more": true
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"request_id": "req_01J9ZQ3F8X5W2K7M4N6P0R1S2T",
"details": [
{
"code": "<string>",
"message": "<string>",
"field": "<string>",
"usage": 123,
"limit": 123,
"current_revision": 123,
"record_id": "<string>",
"draft_id": "<string>"
}
]
}
}Authorizations
Project-scoped API key, e.g. nohead_sk_k7fz0a9c3m2q_<secret>, or
nohead_pk_… for a published-only key. Used by servers, CI, the CLI
and coding agents.
Path Parameters
Collection ID, or the collection slug when authenticating with an API key.
Query Parameters
Available options:
at, -at Page size.
Required range:
1 <= x <= 100The next_cursor from the previous page.