havelock-apilisted
Install: claude install-skill moiri-gamboni/roost
# Havelock Orality Detection API
Analyze text for orality using the [Havelock API](https://havelock.ai/api). Returns a score from 0 (highly literate) to 100 (highly oral), plus interpretive metadata. Free to use, no authentication required.
## Base URL
```
https://thestalwart-havelock-demo.hf.space
```
## Two-Step Request Pattern
The API uses Gradio's async pattern: submit text, receive an event ID, then poll for results.
### Step 1: Submit Text
```
POST /gradio_api/call/analyze
Content-Type: application/json
{"data": ["<text>", <include_sentences>]}
```
- `data[0]` (string, required): Text to analyze.
- `data[1]` (boolean, optional): Include per-sentence breakdown. Defaults to `false`.
Response: `{"event_id": "<id>"}`
### Step 2: Retrieve Results
```
GET /gradio_api/call/analyze/<event_id>
```
Response is Server-Sent Events (SSE). Parse the line starting with `data: ` as JSON.
## Response Fields
| Field | Type | Description |
|-------|------|-------------|
| `score` | integer | 0 (literate) to 100 (oral) |
| `interpretation` | object | `mode` and descriptive text |
| `word_count` | integer | Number of words analyzed |
| `sentences` | array | Per-sentence analysis (only if `include_sentences=true`) |
Interpretation modes range from literate-dominant through balanced to oral-dominant (speeches, podcasts, storytelling).
## Usage Examples
### cURL
```bash
EVENT_ID=$(curl -sX POST https://thestalwart-havelock-demo.hf.space/gradio_api/call/analyze \
-H "Conten