Service
Get service status
GET /api/status.json
Returns service health and status information (RFC 8631 status)
Request policy
- Operation
getStatus- Access
- anonymous
- Automatic retries
- None
- Redirects
- Returned to the caller without following
- Request body limit
- No request body
- Pagination
- No collection iterator
Parameters
No path or query parameters.
Request headers
API-Version(optional) — Header-based API version selection. Omit it, send an empty value, or send 1.0.0; surrounding whitespace is ignored.Idempotency-Key(optional) — Accepted for clients that attach a key uniformly. GET, HEAD, and OPTIONS are already safe and intrinsically idempotent, so read responses are not stored in an idempotency replay cache.
Responses
200
Service is healthy
Response headers
{
"Content-Usage": {
"description": "IETF AIPREF usage preferences for this public content",
"schema": {
"type": "string",
"examples": [
"train-ai=y, search=y"
]
}
},
"Content-Signal": {
"description": "Compatibility AI usage preferences for deployed crawlers",
"schema": {
"type": "string",
"examples": [
"ai-train=yes, search=yes, ai-input=yes"
]
}
},
"API-Version": {
"description": "Selected public REST contract version",
"schema": {
"type": "string",
"enum": [
"1.0.0"
]
}
},
"RateLimit-Policy": {
"description": "Public REST quota policy: 1000 Worker requests per 60 seconds for each source and Cloudflare location",
"schema": {
"type": "string"
}
},
"RateLimit-Limit": {
"description": "Compatibility form of the current public REST request limit",
"schema": {
"type": "integer",
"enum": [
1000
]
}
},
"ETag": {
"description": "Entity tag for conditional requests",
"schema": {
"type": "string"
}
},
"Last-Modified": {
"description": "Last modification date (HTTP IMF-fixdate)",
"schema": {
"type": "string",
"pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$",
"examples": [
"Sun, 06 Sep 2026 17:40:13 GMT"
]
}
},
"Cache-Control": {
"description": "Caching directives",
"schema": {
"type": "string"
}
}
}application/health+json
ServiceStatus
Schema details
status string required
Allowed: "healthy" | "degraded"
timestamp string required (date-time)
version unknown required
checks object required
Schema details
collections object required
Schema details
status string required
Allowed: "pass" | "fail"
componentType unknown required
observedValue number required
observedUnit unknown required
searchProjection object required
Schema details
status string required
Allowed: "pass" | "fail"
componentType unknown required
projectionVersion number required
baselineProjectionVersion number required
Schema details
number
unknown
targetProjectionVersion number required
Schema details
number
unknown
state string required
Allowed: "ready" | "rebuilding" | "degraded"
activeProvider string required
Allowed: "d1-lexical-v1" | "canonical-d1-fallback"
dirtyCount number required
dueCount number required
leasedCount number required
quarantinedCount number required
maintenanceInstanceId string required
vocabularyGeneration number required
lastVerifiedAgeSeconds number required
Schema details
number
unknown
metrics object required
Schema details
responseTimeMs number required
links object required
Schema details
self unknown required
meta unknown required
docs unknown required
capnweb unknown required
mcp unknown required
graphql unknown required
sql unknown required
304
Not Modified
400
Unsupported API version
application/problem+json
ProblemDetails
Schema details
type string required (uri)
Problem type URI (see /problems/)
title string required
Short human-readable summary
status number required
HTTP status code
detail string required
Human-readable explanation
instance string (uri)
URI reference for this occurrence
412
Precondition Failed
429
Public REST request limit exceeded
Response headers
{
"Retry-After": {
"description": "Seconds before the request should be retried",
"schema": {
"type": "integer",
"enum": [
60
]
}
},
"RateLimit": {
"description": "Current quota state for the exhausted public-rest policy",
"schema": {
"type": "string"
}
},
"Content-Usage": {
"description": "IETF AIPREF usage preferences for this public content",
"schema": {
"type": "string",
"examples": [
"train-ai=y, search=y"
]
}
},
"Content-Signal": {
"description": "Compatibility AI usage preferences for deployed crawlers",
"schema": {
"type": "string",
"examples": [
"ai-train=yes, search=yes, ai-input=yes"
]
}
},
"API-Version": {
"description": "Selected public REST contract version",
"schema": {
"type": "string",
"enum": [
"1.0.0"
]
}
},
"RateLimit-Policy": {
"description": "Public REST quota policy: 1000 Worker requests per 60 seconds for each source and Cloudflare location",
"schema": {
"type": "string"
}
},
"RateLimit-Limit": {
"description": "Compatibility form of the current public REST request limit",
"schema": {
"type": "integer",
"enum": [
1000
]
}
}
}application/problem+json
ProblemDetails
Schema details
type string required (uri)
Problem type URI (see /problems/)
title string required
Short human-readable summary
status number required
HTTP status code
detail string required
Human-readable explanation
instance string (uri)
URI reference for this occurrence
503
Service is degraded
Response headers
{
"Content-Usage": {
"description": "IETF AIPREF usage preferences for this public content",
"schema": {
"type": "string",
"examples": [
"train-ai=y, search=y"
]
}
},
"Content-Signal": {
"description": "Compatibility AI usage preferences for deployed crawlers",
"schema": {
"type": "string",
"examples": [
"ai-train=yes, search=yes, ai-input=yes"
]
}
},
"API-Version": {
"description": "Selected public REST contract version",
"schema": {
"type": "string",
"enum": [
"1.0.0"
]
}
},
"RateLimit-Policy": {
"description": "Public REST quota policy: 1000 Worker requests per 60 seconds for each source and Cloudflare location",
"schema": {
"type": "string"
}
},
"RateLimit-Limit": {
"description": "Compatibility form of the current public REST request limit",
"schema": {
"type": "integer",
"enum": [
1000
]
}
},
"ETag": {
"description": "Entity tag for conditional requests",
"schema": {
"type": "string"
}
},
"Last-Modified": {
"description": "Last modification date (HTTP IMF-fixdate)",
"schema": {
"type": "string",
"pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$",
"examples": [
"Sun, 06 Sep 2026 17:40:13 GMT"
]
}
},
"Cache-Control": {
"description": "Caching directives",
"schema": {
"type": "string"
}
}
}application/health+json
ServiceStatus
Schema details
status string required
Allowed: "healthy" | "degraded"
timestamp string required (date-time)
version unknown required
checks object required
Schema details
collections object required
Schema details
status string required
Allowed: "pass" | "fail"
componentType unknown required
observedValue number required
observedUnit unknown required
searchProjection object required
Schema details
status string required
Allowed: "pass" | "fail"
componentType unknown required
projectionVersion number required
baselineProjectionVersion number required
Schema details
number
unknown
targetProjectionVersion number required
Schema details
number
unknown
state string required
Allowed: "ready" | "rebuilding" | "degraded"
activeProvider string required
Allowed: "d1-lexical-v1" | "canonical-d1-fallback"
dirtyCount number required
dueCount number required
leasedCount number required
quarantinedCount number required
maintenanceInstanceId string required
vocabularyGeneration number required
lastVerifiedAgeSeconds number required
Schema details
number
unknown
metrics object required
Schema details
responseTimeMs number required
links object required
Schema details
self unknown required
meta unknown required
docs unknown required
capnweb unknown required
mcp unknown required
graphql unknown required
sql unknown required
Examples
Examples use synthetic fixture values. Replace fixture identifiers with public IDs returned by the service. Request bodies and precise locations are transient; keep them out of logs.
curl
curl --fail-with-body --max-time 30 --max-filesize 16777216 --request GET 'https://irvinebroque.com/api/status.json' --header 'Accept: application/health+json'TypeScript
import { PublicApi } from '@irvinebroque/public-api';
const api = new PublicApi();
const result = await api.service.status({});
console.log(result.status, result.headers.get('content-type')); // Keep transient capabilities in memory.CLI
irvinebroque service statusThe SDK preserves status, headers, and the server envelope. A 304 has no fresh body. Errors retain structured problem details; ordinary error messages omit response details. Responses are limited to 16 MiB and requests time out after 30 seconds by default.