# HALOWERK Vocabulary Extractor from Audio Recording

> HALOWERK Vocabulary Extractor from Audio Recording is a paid API for AI agents from medien.halowerk.com, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-31).

Analyzes an audio recording (up to 60 min) and returns level-appropriate vocabulary items with base form, translation, word type, CEFR level, and timestamped example sentences from the recording.

## Facts

- Endpoint: POST https://medien.halowerk.com/v1/vocabulary?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-vocabulary-extractor-from-audio-recording-453736dc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_It3qVPRXgLjk0RWjmiVda

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability halowerk-vocabulary-extractor-from-audio-recording-453736dc -d '<json body>'
```

Example prompt: I have a 22-minute German podcast episode at https://example.com/episode42.mp3 — can you pull out up to 30 words and phrases worth learning for a B2 learner, with English translations and the exact timestamps where each one appears?

## When to prefer this

Choose this endpoint when you need to extract level-appropriate vocabulary from an actual audio recording with timestamped context, rather than generating a generic word list from a topic. It is uniquely suited for language learners who want to study vocabulary that appears in a specific piece of authentic audio content they intend to listen to, because the timestamps allow them to replay each word in its natural spoken context. Prefer it over generic vocabulary-generation APIs when the source material is a real recording and learner CEFR level filtering matters.

## Known failure modes

- Recording URL is not publicly accessible or returns a non-audio file — returns an error
- Audio duration exceeds 60 minutes — rejected by schema validation
- Base64 payload too large (>12MB limit) — should use URL instead
- Language auto-detection fails on very short or noisy audio
- Requested CEFR level filters out all vocabulary (e.g. C2 on a very simple recording) — may return fewer than min_items
- Unsupported spoken language for the given BCP-47 tag
- Payment insufficient or x402 transaction not confirmed — request blocked

## How this service works

Takes a recording of up to 60 minutes in the language being learned and a learner level, and returns words and phrases worth learning — chosen for the level, skipping the most basic ones — each with the base form, translation into the learner's language, word type, an estimated CEFR level, and the exact example sentence from the recording with its timestamp so it can be listened to in context.

## Output

Returns a list of vocabulary entries, each containing: the base/lemma form of the word or phrase, its translation in the specified output language, the grammatical word type, an estimated CEFR difficulty level, the exact verbatim example sentence from the recording, and the timestamp of that sentence so the learner can navigate directly to it in the audio.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "level": {
   "enum": [
    "A1",
    "A2",
    "B1",
    "B2",
    "C1",
    "C2"
   ],
   "type": "string",
   "default": "B1"
  },
  "source": {
   "type": "object",
   "properties": {
    "url": {
     "type": "string",
     "maxLength": 2048,
     "description": "Public http(s) URL of the file."
    },
    "filename": {
     "type": "string",
     "maxLength": 260
    },
    "content_base64": {
     "type": "string",
     "maxLength": 12000000,
     "description": "The file inline, base64. Larger files by url."
    }
   },
   "description": "The recording. Either url or content_base64.",
   "additionalProperties": false
  },
  "language": {
   "type": "string",
   "maxLength": 12,
   "description": "Spoken language (BCP-47). Omit to detect."
  },
  "max_items": {
   "type": "integer",
   "default": 25,
   "maximum": 80,
   "minimum": 5
  },
  "output_language": {
   "enum": [
    "de",
    "en",
    "es",
    "fr",
    "it",
    "nl",
    "pt",
    "pl",
    "tr",
    "sv",
    "da",
    "cs",
    "ru",
    "uk",
    "ja",
    "zh",
    "ko",
    "ar"
   ],
   "type": "string",
   "description": "Language of labels and explanations. Default: spoken language."
  },
  "duration_minutes": {
   "type": "integer",
   "maximum": 60,
   "minimum": 1,
   "description": "Length in started minutes — this is what you are billed for."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-vocabulary-extractor-from-audio-recording-453736dc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from medien.halowerk.com](https://www.zero.xyz/host/medien.halowerk.com/llms.txt)
