API Documentation

Quick overview of endpoints with copy-paste examples. Request access to start building.

Authentication

Bearer token via the Authorization header. Anonymous access is available for all read endpoints.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.currikon.org/v1/competencies

Core Endpoints

GET /v1/competencies

List and filter competencies. Supports filtering by jurisdiction, subject, schoolType, gradeFrom, gradeTo.

# All Bavaria competencies for Math grade 5
curl "https://api.currikon.org/v1/competencies?jurisdiction=BY&subject=Mathematik&gradeFrom=5&gradeTo=5"
// TypeScript SDK
import { CurrikonClient } from "@currikon/sdk";
const client = new CurrikonClient();

const comps = await client.listCompetencies({
  jurisdiction: "BY",
  subject: "Mathematik",
  gradeFrom: 5,
  gradeTo: 5,
});

GET /v1/competencies/{code}

Fetch a single competency by its unique code.

curl "https://api.currikon.org/v1/competencies/BY-GS-D-34-2.3-01"

GET /v1/competencies/{code}/equivalents

Find equivalent competencies in other jurisdictions. This is the core cross-state mapping endpoint.

curl "https://api.currikon.org/v1/competencies/BY-GS-D-34-2.3-01/equivalents"
// TypeScript SDK
const equivalents = await client.getEquivalents("BY-GS-D-34-2.3-01");
// Returns competencies from NW, ST, KMK, etc.

GET /v1/search?q=

Full-text search across all competencies using SQLite FTS5.

curl "https://api.currikon.org/v1/search?q=Bruchrechnung"

POST /v1/align

AI-powered competency alignment. Send any text and get matching competencies ranked by semantic similarity.

curl -X POST "https://api.currikon.org/v1/align" \
  -H "Content-Type: application/json" \
  -d '{"text": "Students can solve linear equations", "jurisdiction": "BY"}'

GET /v1/case/CFPackages/{id}

Export curriculum frameworks in CASE v1.1 format for international interoperability.

curl "https://api.currikon.org/v1/case/CFPackages/BY-GY-M"

TypeScript SDK

Full type-safe client with autocomplete for all endpoints.

npm install @currikon/sdk
import { CurrikonClient } from "@currikon/sdk";

const client = new CurrikonClient({
  baseUrl: "https://api.currikon.org", // default
});

// List frameworks
const frameworks = await client.listFrameworks();

// Search
const results = await client.search("Bruchrechnung");

// Progression chain
const chain = await client.getProgression("BY-GS-M-34-2.1-01");

More Endpoints

Endpoint Description
GET /v1/frameworks List curriculum frameworks
GET /v1/jurisdictions Available jurisdictions + competency counts
GET /v1/topics Curriculum topics
GET /v1/mappings Cross-jurisdiction mappings
GET /v1/valuestore/* Enum lookups (countries, jurisdictions, subjects, school types)

Ready to try these endpoints?

Request early access and we'll set you up with API credentials.

Request Early Access