# Almanac Prosody API

> Almanac Prosody API is a paid API for AI agents from almanac.locomot.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-13).

Provides poetic and phonetic analysis of English words, including rhymes, pronunciation, syllable counts, stress scanning, and homophones

## Facts

- Endpoint: GET https://almanac.locomot.io/prosody?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/almanac-prosody-api-e21e5d2d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_B4eZfqYaAob8i9LM4iiAn

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 almanac-prosody-api-e21e5d2d
```

Example prompt: Find me up to 10 perfect rhymes for the word 'motion' that have exactly 2 syllables, using the Almanac prosody tool.

## When to prefer this

Choose this endpoint when you need phonetic, prosodic, or rhyme data for English words — especially for poetry generation, songwriting assistance, pronunciation lookup, syllable counting, or metrical scanning. It is purpose-built for prosody with multiple rhyme type filters (perfect, assonance, consonance, slant), stress pattern filtering, and line-level scanning not found in general NLP or dictionary APIs.

## Known failure modes

- Missing required 'word' parameter for rhyme/pronounce/syllables/homophones operations returns an error
- Missing required 'line' parameter for scan operation returns an error
- Invalid 'op' enum value returns an error
- min_score out of 0-1 range may return no results or an error
- No rhymes found for obscure or very short words — empty rhymes array returned
- Payment not provided results in 402 response before data is returned

## How this service works

Deterministic phonetic rhyme (perfect + scored slant), pronunciation, syllables, scansion, homophones — from CMUdict.

## Output

Returns a JSON object containing the operation type, the queried word, an array of rhymes (or pronunciation/syllable/scan/homophone results depending on op), rhyme breakdown by type, applied filters, syllable and stress metadata, the phonetic engine used, and the pronunciation authority source.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "op": {
       "enum": [
        "rhyme",
        "pronounce",
        "syllables",
        "scan",
        "homophones"
       ],
       "type": "string",
       "description": "operation; default rhyme"
      },
      "max": {
       "type": "integer",
       "description": "rhyme: result count"
      },
      "line": {
       "type": "string",
       "description": "scan: a line of verse"
      },
      "text": {
       "type": "string",
       "description": "syllables: any text"
      },
      "word": {
       "type": "string",
       "description": "the word"
      },
      "meter": {
       "type": "string",
       "description": "rhyme: filter by stress pattern"
      },
      "types": {
       "type": "string",
       "description": "rhyme: perfect,assonance,consonance,slant"
      },
      "min_score": {
       "type": "number",
       "description": "rhyme: min closeness 0-1"
      },
      "syllables": {
       "type": "integer",
       "description": "rhyme: filter by syllable count"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "op": {
     "type": "string"
    },
    "note": {
     "type": "string"
    },
    "word": {
     "type": "string"
    },
    "count": {
     "type": "integer"
    },
    "engine": {
     "type": "string"
    },
    "rhymes": {
     "type": "array"
    },
    "by_type": {
     "type": "object"
    },
    "filters": {
     "type": "object"
    },
    "deterministic": {
     "type": "boolean"
    },
    "frequency_source": {
     "type": "string"
    },
    "query_pronunciation": {
     "type": "string"
    },
    "pronunciation_authority": {
     "type": "string"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/almanac-prosody-api-e21e5d2d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from almanac.locomot.io](https://www.zero.xyz/host/almanac.locomot.io/llms.txt)
