Command center
Platform

API console

The public Palatine API: events, facilities, exposure and research over HTTPS with a workspace API key.

Manage keys in ForgeAPI

Authentication

Create a key in ForgeAPI (workspace owners and admins). It is shown once and stored only as a hash. Send it on every request:

Authorization: Bearer plt_YOUR_KEY

Keys are never accepted in query strings or cookies. A key acts on its own workspace only, can be given an expiry and can be revoked at any time.

Scopes

events:read
GET /public/events
facilities:read
GET /public/facilities
exposure:run
POST /public/exposure/analyze
research:read
GET /public/research/works

GET /public/me works with any valid key.

Quotas and limits

Free
100 calls / month
Professional
10,000 calls / month
Business
50,000 calls / month
Enterprise
Unlimited calls / month

Each data call is metered against the workspace plan for the calendar month. Each key also has a per-minute rate limit (120 per minute by default), and each route a per-client limit. When a limit is hit the API answers 429 with retryAfterSeconds.

Errors

401 · invalid_api_key
Missing, malformed, revoked or expired key. Repeated failures from one address are rate limited.
403 · insufficient_scope
The key lacks the scope the route requires (`required` names it).
403 · plan_limit_reached
The workspace used all API calls of its plan this month.
400 · invalid_input
A query parameter or body field failed validation (`issues` lists them).
429 · rate_limited
Per-key or per-route limit hit; `retryAfterSeconds` says when to retry.

Try it

Your key stays in this tab's memory only: it is not saved, not sent to Palatine AI and is discarded when you leave the page. Calls count toward your plan like any other.

Keys start with plt_ and are shown once when created in ForgeAPI.

Endpoints

Base URL https://palatine.digital/api/v1. Responses use one envelope: { data, meta }, where meta.usage reports this month's calls and the plan limit.

GET/api/v1/public/meany valid key

The key itself: key id, workspace id, scopes and this month's API-call usage. Not counted as a call. Route limit: 300 / min per client.

curl -s 'https://palatine.digital/api/v1/public/me' \
  -H 'Authorization: Bearer plt_YOUR_KEY'
GET/api/v1/public/eventsevents:read

Normalized Earth Pulse events from ForgeAPI-approved sources only. Counts as one API call. Route limit: 300 / min per client.

sinceHours
1–8760, default 168
limit
1–500, default 100
source
e.g. usgs-earthquakes, nasa-eonet
q
text, up to 120 chars
category
event category
minMagnitude
-2 to 10
lat, lon, radiusKm
proximity filter; radiusKm default 500, max 5000
curl -s 'https://palatine.digital/api/v1/public/events?sinceHours=24&limit=5' \
  -H 'Authorization: Bearer plt_YOUR_KEY'
GET/api/v1/public/facilitiesfacilities:read

Facilities of the key's workspace. Counts as one API call. Route limit: 300 / min per client.

curl -s 'https://palatine.digital/api/v1/public/facilities' \
  -H 'Authorization: Bearer plt_YOUR_KEY'
GET/api/v1/public/research/worksresearch:read

Scholarly metadata search (OpenAlex by default, Crossref optional). Metadata only, with limitations in meta. Counts as one API call. Route limit: 30 / min per client.

q
required, 3–200 chars
source
openalex (default) | crossref
fromYear, toYear
publication years
openAccessOnly
true | false (OpenAlex only)
page, perPage
perPage 1–25, default 10
curl -s 'https://palatine.digital/api/v1/public/research/works?q=supply%20chain%20resilience&perPage=3' \
  -H 'Authorization: Bearer plt_YOUR_KEY'
POST/api/v1/public/exposure/analyzeexposure:run

Geographic exposure of the workspace's facilities to recent events. A calculation — proximity is not confirmed operational impact. Never persisted. Counts as one API call. Route limit: 30 / min per client.

facilityIds
optional, up to 200 UUIDs (default: all)
eventIds
optional, up to 500 UUIDs
radiusKm
> 0, max 2000, default 250
sinceHours
1–2160, default 168
curl -s -X POST 'https://palatine.digital/api/v1/public/exposure/analyze' \
  -H 'Authorization: Bearer plt_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"radiusKm":250,"sinceHours":168}'