Base URL
https://api.currixa.net/v1
Every path starts with /v1 — the contract version, not the knowledge version. Requests and answers are JSON.
One interface to structured academic knowledge: official curricula, immutable versions, and documented provenance for every element — over REST.
Note
Self-serve organisations create applications and API keys in their workspace; a test key reads public content only. The operator still creates service clients for the organisations it runs. Every client works inside its own and its tenant's limits.
Service status and incidents: status.currixa.net
Five steps from nothing to your first answer from the API.
Create an account, then name your organisation and choose its country. It is your tenant: every application, key and request belongs to it.
In your workspace, open Developers, create an application with the read scopes it needs, then a key. Start with a test key: it reads public content only, 10 requests a minute. A key is shown once — copy it then.
On your server, never in code or in the browser. Use one key for development and another for production.
export CURRIXA_API_KEY="paste-your-key-here"It lists the first five outcomes your key can read. The answer holds data and page.next_cursor.
curl -s -H "Authorization: Bearer $CURRIXA_API_KEY" "https://api.currixa.net/v1/framework-outcomes?framework=CURRIXA-ARA-NATIVE-V1&limit=5"Pin the version you read, follow each outcome's provenance, and subscribe to webhooks.
Each command is one line: paste it, replace the placeholder, run it.
What every integration needs, at a glance. Each one links to its full page.
https://api.currixa.net/v1
Every path starts with /v1 — the contract version, not the knowledge version. Requests and answers are JSON.
Authorization: Bearer $CURRIXA_API_KEY
Send your key as a bearer token in the Authorization header, from your server only. A key acts with its application's scopes, inside its organisation.
crx_test_…crx_live_…
A test key starts with crx_test_ and reads public content only; a live key starts with crx_live_. A key is shown once. Rotate it with a grace of up to seven days, or revoke it at once, from your workspace; an expiry date and an IP allowlist are optional. Managing keys needs two-step verification.
GET /v1/frameworksGET /v1/framework-outcomes
Every served endpoint with its scope, drawn from the API's OpenAPI contract. The OpenAPI file itself is not published for download yet.
?version=YYYY.N?version=YYYY.N.P
Pass version as YYYY.N or YYYY.N.P on knowledge reads; the answer always names the resolved version. Published content never changes under you: a correction is a new version. A breaking interface change ships as /v2, never inside /v1.
?limit=100&cursor=…page.next_cursor
Lists take limit and cursor. Most lists default to 25 and refuse a limit above 100; the reference lists (countries, curriculum types, subject areas, education systems, academic levels) and /v1/frameworks go up to 200. Send page.next_cursor back as cursor until it is null. There are no page numbers.
Idempotency-Key
Every POST that changes state carries an Idempotency-Key of 8 to 128 characters. The same value with the same request returns the stored answer without repeating the action; with a different request it is a 409 CONFLICT.
429Retry-After
Limits per minute for your client and your organisation, and a monthly quota where the plan has one. Answers carry RateLimit-Limit, -Remaining and -Reset. Over a limit: a 429 with Retry-After — wait it out in full, then retry once.
request_idx-request-id
Every failure is one Problem: type, title (the stable code), status, detail, instance and request_id. Every answer also carries x-request-id — quote it when you write to us.
Currixa-SignatureCurrixa-Event-Id
Signed with HMAC-SHA256 in Currixa-Signature, delivered at least once — deduplicate on Currixa-Event-Id — and retried five times. Three of the contract's nine events are sent today.
No official library is published yet: call the REST API directly, with ready examples on the SDKs page.
Your plan sets requests a minute and a month, applications, keys and webhook subscriptions. Follow usage and the request log on the Developers page of your workspace.
Write to us from the contact page and quote the request_id. Report a vulnerability through responsible disclosure.
How tokens, isolation and audit work, and the terms that govern your use.
Curriculum, versions, outcomes, provenance, visibility, and tenant context.
From client to a version-pinned outcome in seven steps.
The endpoints that actually serve, scopes, pinning, and errors.
The uniform Problem shape and every code in the contract.
60/min per client and 600/min per tenant without a plan, your plan's numbers on one, with Retry-After.
The nine-event catalogue, the three sent today, signatures and retries.
No official package yet: direct REST with ready examples.
Tokens, MFA, isolation, audit, and AI boundaries.
How the interface and the knowledge change without surprises.