# Touchstone Prosody API

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

Provides poetry and phonetic analysis operations including rhyme finding, pronunciation lookup, syllable counting, verse scanning, and homophone detection for any word or line of text.

## Facts

- Endpoint: GET https://touchstone.locomot.io/prosody
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/touchstone-prosody-api-5005dd2c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IbaQk10m6pVTWZSPwb44Q

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 touchstone-prosody-api-5005dd2c
```

Example prompt: Find me up to 20 perfect rhymes for the word 'moon' that have exactly 1 syllable, filtering by the types 'perfect' and 'assonance' with a minimum closeness score of 0.7.

## When to prefer this

Use this endpoint when you need phonetic or prosodic analysis of English words — especially rhyme generation with fine-grained filtering (by type, meter, syllable count, or closeness score), pronunciation lookups, syllable counting, or poetic meter scanning. Prefer this over general NLP APIs when the task is specifically poetry-related or phonetics-based.

## Known failure modes

- Missing required 'word' parameter returns an error or empty results
- Invalid 'op' enum value returns an error
- 'line' parameter required for scan operation but not provided
- 'text' parameter required for syllables operation but not provided
- Word not found in phonetic database returns empty rhymes array
- min_score out of 0-1 range may return no results
- Payment not completed results in 402 response

## How this service works

Deterministic phonetic rhyme (perfect + scored slant), pronunciation, syllables, scansion, homophones — from CMUdict. Free sample, no payment required: GET /play/prosody

## Output

Returns a JSON object with the queried word, operation type, a list of rhyming/matching words, results grouped by rhyme type, applied filters, syllable or pronunciation data depending on the operation, the engine used, and whether results are deterministic.

## 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/touchstone-prosody-api-5005dd2c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from touchstone.locomot.io](https://www.zero.xyz/host/touchstone.locomot.io/llms.txt)
