Papertek Vocabulary API

Open vocabulary data and API for language learning applications

Base URL https://vocab.papertek.no/api/vocab
3
Languages
5 448
Total words
6 000+
Audio files
5
Translation pairs
8
Curricula

Languages

German (de)

3 454 words
3 567 audio files
CEFR A1–B1 coverage
8 curricula

Spanish (es)

1 017 words
993 audio files
1 curriculum

French (fr)

977 words
1 457 audio files

Translation pairs

de-en de-nb es-en es-nb fr-nb

Endpoints

GET /v1/manifest API overview & available data

Returns all available languages, translation pairs, dictionary info, and endpoint URLs. Start here to discover the API.

/api/vocab/v1/manifest
GET /v1/core/{language} Core vocabulary data

Returns all vocabulary banks for a language, including words, conjugations, declensions, and audio references.

ParameterTypeDescription
language path Language code or name: de, german, es, spanish, fr, french
bank query Return a single bank: verbbank, nounbank, adjectivebank, articlesbank, generalbank, numbersbank, phrasesbank, pronounsbank
/api/vocab/v1/core/de
/api/vocab/v1/core/es
/api/vocab/v1/core/fr
/api/vocab/v1/core/de?bank=verbbank
GET /v1/translations/{pair} Translation data

Returns translations, synonyms, examples, and explanations for a language pair.

ParameterTypeDescription
pair path Translation pair: de-en, de-nb, es-en, es-nb, fr-nb
bank query Return a single bank (e.g. verbbank)
/api/vocab/v1/translations/de-en
GET /v1/grammarfeatures Grammar feature metadata

Returns grammar features for progressive disclosure in learning apps. Use this to build settings UIs where users select which grammar concepts they've learned.

ParameterTypeDescription
language query Filter to one language: de, es, fr. Omit for all languages.
/api/vocab/v1/grammarfeatures
/api/vocab/v1/grammarfeatures?language=de
GET /v1/curricula List available curricula

Returns all available curriculum manifests. Each curriculum maps lessons to vocabulary word IDs and grammar features.

/api/vocab/v1/curricula
GET /v1/curricula/{curriculumId} Curriculum lesson manifest

Returns the full lesson manifest for a curriculum. Each lesson contains word IDs and grammar feature IDs introduced in that lesson.

ParameterTypeDescription
curriculumId path tysk1-vg1, tysk1-vg2, tysk2-vg1, tysk2-vg2, us-8, us-9, us-10, spansk1-vg1
{
  "lessons": {
    "1.1": {
      "words": ["und_conj", "aus_prep", "hallo_interj", ...],
      "features": ["grammar_present", "grammar_pronouns_ich_du"]
    },
    "1.2": { "words": [...], "features": [...] },
    ...
  }
}
/api/vocab/v1/curricula/tysk1-vg1
/api/vocab/v1/curricula/spansk1-vg1
GET /v2/search/{language} Full-text vocabulary search

Search across all vocabulary with ranked results. Matches on both the original word and translations. Results are ranked by match type (prefix > contains) and word frequency.

ParameterTypeDescription
language path Language code: de, es, fr
q query Search query (min 2 characters)
lang query Translation language: nb (default), en
limit query Max results, 1–50 (default: 10)
type query Filter by word type: verb, noun, adjective, etc.
cefr query Filter by CEFR level: A1, A2, B1 (comma-separated)
source query all (default), curriculum, dictionary
/api/vocab/v2/search/de?q=haus
/api/vocab/v2/search/es?q=casa
/api/vocab/v2/search/fr?q=maison
GET /v2/lookup/{language}/{wordId} Detailed word lookup

Returns full detail for a single word: translations, conjugations, declensions, cases, audio, CEFR level, frequency, grammar features, and more.

ParameterTypeDescription
language path Language code: de, es, fr
wordId path Word identifier (e.g. haus_noun, sein_verb)
lang query Translation language: nb (default), en
{
  "word": "Haus",
  "type": "noun",
  "genus": "n",
  "plural": "Häuser",
  "audio": "substantiv_haus.mp3",
  "translation": "hus",
  "cefr": "A1",
  "frequency": 156,
  "curriculum": true,
  "cases": {
    "akkusativ": { "bestemt": "das Haus", "ubestemt": "ein Haus" },
    "dativ": { "bestemt": "dem Haus", "ubestemt": "einem Haus" }
  },
  "grammarFeatures": ["grammar_articles", "grammar_plural", "grammar_accusative_definite", "grammar_dative"]
}
/api/vocab/v2/lookup/de/haus_noun
/api/vocab/v2/lookup/es/casa_noun
/api/vocab/v2/lookup/fr/maison_noun

Caching & CORS

All endpoints return Access-Control-Allow-Origin: * — you can call the API directly from any browser application.

Responses are cached with Cache-Control: public, max-age=3600, s-maxage=86400 — 1 hour in the browser, 24 hours on the CDN. Vocabulary data changes infrequently, so aggressive caching is safe.

Try it

Quick start

// Fetch all vocabulary for a language
const de = await fetch('https://vocab.papertek.no/api/vocab/v1/core/de');
const es = await fetch('https://vocab.papertek.no/api/vocab/v1/core/es');
const fr = await fetch('https://vocab.papertek.no/api/vocab/v1/core/fr');

// Search across any language
const search = await fetch('https://vocab.papertek.no/api/vocab/v2/search/es?q=casa');
const results = await search.json();

// Look up a specific word with full detail
const word = await fetch('https://vocab.papertek.no/api/vocab/v2/lookup/fr/maison_noun');
const detail = await word.json();