Examples
Code Examples
Ready-to-use code snippets in multiple programming languages.
Python
Basic Setup
Python - requests
import requests
API_BASE = "https://german-language.onrender.com"
API_KEY = "demo-key-12345"
headers = {"X-API-Key": API_KEY}
# Get A1 vocabulary
response = requests.get(
f"{API_BASE}/vocab",
headers=headers,
params={"level": "a1", "limit": 10}
)
data = response.json()
print(f"Found {data['total']} A1 words")
for word in data['data']:
print(f"{word['german']} ({word['gender']}) - {word['english']}")Search Vocabulary
Python - Search
# Search for words containing "haus"
response = requests.get(
f"{API_BASE}/vocab/search",
headers=headers,
params={"q": "haus", "limit": 20}
)
results = response.json()
print(f"Found {results['count']} matches for 'haus'")
for word in results['data']:
print(f"[{word['level']}] {word['german']} - {word['english']}")Flashcard App Example
Python - Flashcard Generator
import random
def get_flashcards(level: str, count: int = 10):
"""Generate random flashcards for a CEFR level."""
response = requests.get(
f"{API_BASE}/vocab",
headers=headers,
params={"level": level, "limit": 500}
)
all_words = response.json()['data']
selected = random.sample(all_words, min(count, len(all_words)))
flashcards = []
for word in selected:
flashcards.append({
"front": word['german'],
"back": f"{word['english']} ({word['gender']})",
"example": word.get('example_de', '')
})
return flashcards
# Generate 5 A1 flashcards
cards = get_flashcards("a1", 5)
for i, card in enumerate(cards, 1):
print(f"Card {i}: {card['front']} → {card['back']}")JavaScript / TypeScript
Fetch API
JavaScript - Fetch
const API_BASE = "https://german-language.onrender.com";
const API_KEY = "demo-key-12345";
async function getVocabulary(level, limit = 10) {
const params = new URLSearchParams({ level, limit });
const response = await fetch(`${API_BASE}/vocab?${params}`, {
headers: { "X-API-Key": API_KEY }
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
return response.json();
}
// Usage
const data = await getVocabulary("a1", 10);
console.log(`Found ${data.total} A1 words`);
data.data.forEach(word => {
console.log(`${word.german} (${word.gender}) - ${word.english}`);
});React Hook Example
React - Custom Hook
import { useState, useEffect } from 'react';
const API_BASE = "https://german-language.onrender.com";
const API_KEY = "demo-key-12345";
function useGermanVocab(level, limit = 20) {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
async function fetchVocab() {
try {
setLoading(true);
const params = new URLSearchParams({ level, limit });
const res = await fetch(`${API_BASE}/vocab?${params}`, {
headers: { "X-API-Key": API_KEY }
});
if (!res.ok) throw new Error("Failed to fetch");
const json = await res.json();
setData(json);
} catch (err) {
setError(err.message);
} finally {
setLoading(false);
}
}
fetchVocab();
}, [level, limit]);
return { data, loading, error };
}
// Usage in component
function VocabList({ level }) {
const { data, loading, error } = useGermanVocab(level);
if (loading) return <p>Loading...</p>;
if (error) return <p>Error: {error}</p>;
return (
<ul>
{data.data.map((word, i) => (
<li key={i}>{word.german} - {word.english}</li>
))}
</ul>
);
}Node.js with Axios
Node.js - Axios
const axios = require('axios');
const api = axios.create({
baseURL: 'https://german-language.onrender.com',
headers: { 'X-API-Key': 'demo-key-12345' }
});
async function getRandomSentences(level, count = 5) {
const { data } = await api.get('/sentences/random', {
params: { level, count }
});
return data;
}
// Get 5 random A1 sentences
const sentences = await getRandomSentences('A1', 5);
sentences.data.forEach(s => {
console.log(`DE: ${s.sentence_de}`);
console.log(`EN: ${s.sentence_en}\n`);
});cURL
Get Dataset Statistics
cURL
curl -X GET "https://german-language.onrender.com/stats" \
-H "X-API-Key: demo-key-12345"Get Vocabulary by Level
cURL
# Get 20 B1 vocabulary words, skip first 10
curl -X GET "https://german-language.onrender.com/vocab?level=b1&limit=20&offset=10" \
-H "X-API-Key: demo-key-12345"Search Vocabulary
cURL
# Search for "house" in A1 vocabulary
curl -X GET "https://german-language.onrender.com/vocab/search?q=house&level=a1" \
-H "X-API-Key: demo-key-12345"Get Grammar Rules
cURL
# Get grammar rules for "verb" category
curl -X GET "https://german-language.onrender.com/grammar?category=verb&limit=10" \
-H "X-API-Key: demo-key-12345"Get Random Sentences
cURL
# Get 5 random B2 sentences
curl -X GET "https://german-language.onrender.com/sentences/random?level=B2&count=5" \
-H "X-API-Key: demo-key-12345"Common Use Cases
📱
Flashcard Apps
Use /vocab to get words by level, perfect for spaced repetition systems.
🎮
Language Games
Use /sentences/random for translation quizzes and fill-in-the-blank games.
📚
Study Tools
Use /grammar to build grammar reference guides and study materials.
🔍
Dictionary Apps
Use /vocab/search for instant German-English word lookups.