REST API

A REST API for
the skills graph.

158,000 skills, 8 reference frameworks, 18,073 junctions. x-api-key, OpenAPI 3.1, median < 200 ms in the fr-par region.

BASE_URL=https://api.skillberg.app/v1
● ~99.9% uptimeregion: fr-parp50 < 200 msopenapi 3.1 · stable
GET /v1/skills/search
$ curl https://api.skillberg.app/v1/skills/search?q=python \
-H "x-api-key: sk_live_..."
 
{
"skills": [
{
"uri": "skillberg://skill/a8f72c...",
"label": "Python",
"confidence": 0.98,
"referentials": ["esco", "onet"]
},
...
],
"meta": { "took_ms": 142, "region": "fr-par" }
}
01 · Auth

Authentication.

HEADERBuilder · Scale · Partner

API key in header

One key per environment, generated from the Console. The secret is shown only once, at creation.

curl https://api.skillberg.app/v1/skills/search?q=python \
-H "x-api-key: sk_live_..."
  • Recommended for 95% of integrations
  • Rotate anytime from the Console
  • Discovery tier active immediately after creation
OAUTH 2.1Multi-tenant · DCR + PKCE

OAuth (Partner & Omni)

For multi-tenant or white-label deployments. Includes DCR + PKCE.

POST /v1/oauth/token
grant_type=client_credentials
client_id=...
client_secret=...
  • Multi-tenant: one sub-token per end user
  • Works with the MCP Connector
  • Custom quote — contact@skillberg.app
02 · Endpoints

Five endpoint families.

One canonical graph. Each family handles one resource type.

01

Skills

Search, fetch and explore the graph of 158,000 canonical skills.

View in OpenAPI
GET/v1/skills/search?q={query}Fuzzy search.
GET/v1/skills/{uri}Full multilingual record.
GET/v1/skills/{uri}/neighborsNeighboring skills (prerequisites, broader, narrower).
GET/v1/skills/{uri}/prerequisitesPrerequisite tree (Skill Trees).
02

Occupations

20,600 occupations across 8 reference frameworks, with search and detailed records.

View in OpenAPI
GET/v1/occupations/search?q={query}Fuzzy search by title.
GET/v1/occupations/{uri}Occupation record + required skills.
GET/v1/occupations/{uri}/skillsRequired skills with proficiency level.
03

CVs

Parsing and enrichment of plain-text CVs.

View in OpenAPI
POST/v1/cvs/treatParses a plain-text CV.
POST/v1/cvs/enrichEnriches a parsed CV with Skillberg URIs.
POST/v1/cvs/extract-skillsShortcut: plain text → skill URIs.
04

Matching

Fit score between a CV and a job.

View in OpenAPI
POST/v1/matching/cv-to-jobUploaded CV (user_id) ↔ job (job_id).
POST/v1/matching/cv-text-to-job-textPlain text ↔ plain text, no upload.
05

Crosswalk

Converts a Skillberg URI to a target framework.

View in OpenAPI
GET/v1/mapping/crosswalk?uri={uri}&target_taxonomy={ESCO|ROME|ONET|SSF|KLDB|ONS}Conversion.
All endpoints in the OpenAPI 3.1 spec
03 · Quotas

Quotas and rate limits.

Tied to the tier you pick in the Console.

TierMonthly quotaRate limitOverage
Discovery500 credits / month500 req/daySoft block after quota
Builder10,000 credits / month5,000 req/day€0.07 / credit
Scale25,000 credits / month10,000 req/day€0.06 / credit
Partner50,000 credits / monthUnlimited€0.05 / credit
OmniUnlimitedUnlimitedCustom quote

Quota per calendar month. Resets on the 1st of the month at 00:00 UTC. Discovery available with no key and no sign-up.

04 · Regions

Regions.

fr-par
Paris
Default region. Median < 200 ms from Europe.
Available
eu-west
Dublin
Active-passive replica.
Q3 2026
us-east
Ashburn, VA
For US customers.
Q4 2026
05 · Latency

Latency.

Median latency < 200 ms p50, < 500 ms p99 from Europe on the GET /v1/skills/* endpoints. POST /v1/matching/* endpoints add 100–300 ms (inference).

GET /v1/skills/search~140 ms p50
GET /v1/skills/{uri}~80 ms p50
POST /v1/cvs/treat~400 ms p50
POST /v1/matching/cv-text-to-job-text~600 ms p50
06 · Errors

Error model.

Every error returns a standard JSON object with a stable code.

{
"error": {
"code": "rate_limit_exceeded",
"message": "Monthly quota reached.",
"details": {
"tier": "starter",
"reset_at": "2026-06-01T00:00:00Z"
}
}
}
invalid_api_key401
rate_limit_exceeded429
quota_exhausted429
not_found404
validation_error400
internal_error500
07 · Versioning

Versioning.

Stable /v1 prefix. Breaking changes are announced 6 months in advance, with a Sunset header on affected endpoints.

  • No breaking change without explicit notice
  • Additional fields = non-breaking
  • Every change documented in the CHANGELOG (GitHub link)
  • Migration guide for every major version
View the CHANGELOG
08 · SDK & spec

SDKs and spec.

OpenAPI 3.1

Complete, machine-readable spec. Import it into Postman, Insomnia, Stoplight.

openapi.json
β

Python SDK

Official client, async types, automatic retries.

pip install skillberg
Soon

TypeScript SDK

TS client planned for Q3 2026.

Notify me

GitHub examples

Complete recipes for all 5 families, in curl / Python / Node.

github.com/Skillberg-app
09 · Agent-ready

Documentation your agents can read.

api.skillberg.app exposes an llms.txt, an llms-full.txt version and the OpenAPI 3.1 spec. Your agents can explore it without going through us.

api.skillberg.app · machine-readableLIVE

Works with Claude · ChatGPT · Cursor · Cline · Continue.

prompt · paste into Claude / ChatGPT / Cursor
Can you explore the Skillberg API documentation at
https://api.skillberg.app and see how we could quickly
integrate their tools into our application?

Points to cover:
- the 5 endpoint families (skills, occupations, cvs, matching, crosswalk)
- x-api-key authentication
- an example `GET /v1/skills/search` request with the JSON response
- the Builder tier quotas

Machine-readable spec: https://api.skillberg.app/openapi.json
LLM-friendly digest: https://api.skillberg.app/llms.txt
Full version: https://api.skillberg.app/llms-full.txt
09 · Get started

Thirty seconds for a key.
Five minutes for an integration.

Create your account, generate a key, read the OpenAPI spec.

Create a free API key Read the OpenAPI spec
BASE_URL=https://api.skillberg.app/v1   AUTH=x-api-key

Need OAuth or Omni quotas? contact@skillberg.app