Lingara Lingara Documentatie Gidsen API Bibliotheken Apps Bouwen Webapp
Taal: Nederlands

Een woordenlijst genereren

API-versie 2026-10-affable-towhee

post https://api.getlingara.com/v1/vocab/stream

Streamt een lijst met woorden op het gevraagde niveau. De stream stuurt started met de details van de lijst, één item-event per woord en daarna done. Totdat de lijst klaar is, stuurt hij alleen keepalive-commentaren.

Bevoegdheden vocab:generate

Parameters

Lingara-Versionheaderstringoptioneel
De API-versie waaronder dit verzoek wordt beantwoord. Zonder deze krijgt een toegangstoken de versie waaraan zijn client is gekoppeld, en een verzoek zonder token de huidige versie. De versie die nog in ontwikkeling is, bereik je alleen door die hier te noemen. Een onbekende versie geeft 400 met code api_version_unknown. GET /v1/versions toont de versies.

Request-body application/json

levelintegerverplicht
source_langstringverplicht
target_langstringverplicht
countinteger | nulloptioneel

Antwoorden

200 De lijst, één woord per event

Stream-events text/event-stream

Stuurt elke 15 seconden een keepalive-commentaar.

started VocabStarted
metaVocabMetaverplicht
levelintegerverplicht
source_langstringverplicht
target_langstringverplicht
frameworkstringverplicht
countintegerverplicht
ai_generatedbooleanverplicht
item VocabItem
wordstringverplicht
pronunciationstring | nulloptioneel
readingstring | nulloptioneel
translationstringverplicht
exampleVocabExample | nulloptioneel
sentencestringverplicht
translationstringverplicht
image_urlstring | nulloptioneel
done Done Beëindigt de stream
error StreamError Beëindigt de stream

Komt binnen het 200-antwoord aan. De statusregel is al verzonden, dus een fout nadat de stream is geopend wordt als deze gebeurtenis gemeld.

codestringverplicht
messagestringverplicht
plan_idstring | nulloptioneel

Fouten

402application/json
De aanroep van een client met verbruiksafrekening is geweigerd voordat die iets heeft uitgegeven. spend_cap_reached: de client of zijn account heeft zijn maandelijkse uitgavenlimiet bereikt; verhoog de limiet op de pagina Integraties. metered_billing_inactive: verbruiksafrekening is niet actief voor dit account; stel die in of werk de betaalmethode bij op de pagina Integraties.
410application/json
De API-versie waaronder dit verzoek wordt beantwoord, is stopgezet. Stuur een ondersteunde versie mee in Lingara-Version, of koppel de client aan een andere versie.
4XXapplication/json
Het verzoek is geweigerd. code geeft de reden aan en error beschrijft die in woorden.
503application/json · text/plain
De dienst is tijdelijk niet beschikbaar; probeer het opnieuw na het aantal seconden in Retry-After. Tijdens onderhoud is de body platte tekst in plaats van de foutenvelop.
5XXapplication/json
Het verzoek is geweigerd. code geeft de reden aan en error beschrijft die in woorden.
codestringverplicht

Waarom het verzoek is geweigerd, als stabiele code om op te vertakken: bijvoorbeeld insufficient_scope (403), rate_limited (429) en, voor een client met verbruiksafrekening, spend_cap_reached (402) en metered_billing_inactive (402).

errorstringverplicht

Voorbeeld

Taal van het codevoorbeeld

curl

curl -N -X POST "https://api.getlingara.com/v1/vocab/stream" \
  -H "Authorization: Bearer $LINGARA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"level":2,"source_lang":"en","target_lang":"zh","count":8}'

TypeScript

const stream = client.generateVocabulary({ level: 2, source_lang: "en", target_lang: "zh", count: 8 });
for await (const ev of stream) {
  if (ev.event === "item") console.log(ev.data.word, ev.data.translation);
}

Rust

use lingara::models::{GenerateVocabularyEvent, VocabRequest};
use std::num::NonZeroU8;

let request = VocabRequest { level: 2, source_lang: "en".into(), target_lang: "zh".into(), count: NonZeroU8::new(8) };
let mut stream = client.generate_vocabulary(&request).await?;
while let Some(event) = stream.next().await {
    if let GenerateVocabularyEvent::Item(item) = event? {
        println!("{} {}", item.word, item.translation);
    }
}

Go

count := uint8(8)
s, err := client.GenerateVocabulary(ctx, lingara.VocabRequest{Level: 2, SourceLang: "en", TargetLang: "zh", Count: &count})
if err != nil {
	return err
}
defer s.Close()
for ev, err := range s.Events() {
	if err != nil {
		return err
	}
	if item, ok := ev.(lingara.GenerateVocabularyEventItem); ok {
		fmt.Println(item.Data.Word, item.Data.Translation)
	}
}

Java

import com.getlingara.client.model.GenerateVocabularyEvent;
import com.getlingara.client.model.VocabRequest;

VocabRequest request = new VocabRequest().level(2).sourceLang("en").targetLang("zh").count(8);
try (EventStream<GenerateVocabularyEvent> stream = client.generateVocabulary(request)) {
  for (GenerateVocabularyEvent event : stream) {
    if (event instanceof GenerateVocabularyEvent.Item item) {
      System.out.println(item.data().getWord() + " " + item.data().getTranslation());
    }
  }
}

Kotlin

import com.getlingara.kotlin.LingaraClient
import com.getlingara.kotlin.model.GenerateVocabularyEvent
import com.getlingara.kotlin.model.VocabRequest

val request = VocabRequest(level = 2, sourceLang = "en", targetLang = "zh", count = 8)
// The request is sent here; collect the stream once, inside use {}.
client.generateVocabulary(request).use { stream ->
    stream.collect { event ->
        when (event) {
            is GenerateVocabularyEvent.Item -> println("${event.data.word} ${event.data.translation}")
            is GenerateVocabularyEvent.Started -> Unit
        }
    }
}

Ruby

client.generate_vocabulary(level: 2, source_lang: "en", target_lang: "zh", count: 8) do |event|
  case event
  in Lingara::GenerateVocabularyEventItem => item then puts "#{item.data.word}: #{item.data.translation}"
  else nil
  end
end

PHP

use Lingara\Model\VocabRequest;
use Lingara\Stream\GenerateVocabularyEvent;

$request = new VocabRequest(['level' => 2, 'source_lang' => 'en', 'target_lang' => 'zh', 'count' => 8]);
foreach ($client->generateVocabulary($request) as $event) {
    if ($event instanceof GenerateVocabularyEvent\Item) {
        echo $event->data->getWord(), ': ', $event->data->getTranslation(), "\n";
    }
}

Liever een bibliotheek? Zie de sectie Bibliotheken.

Voorbeeldstream

event: started
data: {"meta":{"level":2,"source_lang":"en","target_lang":"zh","framework":"HSK","count":2,"ai_generated":true}}

event: item
data: {"word":"你好","pronunciation":"nǐ hǎo","translation":"hello","example":{"sentence":"你好,我叫小明。","translation":"Hello, my name is Xiaoming."}}

event: item
data: {"word":"谢谢","pronunciation":"xiè xie","translation":"thank you"}

event: done
data: {}

Als een vertaling afwijkt van de Engelse referentie, is de Engelse referentie juist.