---
title: "List hosts"
method: GET
path: "/v1/hosts"
tags: ["Hosts"]
---

# List hosts

`GET /v1/hosts`

## Request

- Base URL: `https://api.jellypod.com`
- URL: `https://api.jellypod.com/v1/hosts`
- Auth: HTTP bearer

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

Page of hosts

- ListHostsResponse: Page of hosts. Use the `Link` response header (`rel="next"`) to paginate.
  - `data` HostRow[], required
    - `backstory` string, nullable, required
    - `created_at` string, required
    - `id` string, required: 8-character hex host id (e.g. `2e6939fe`).
    - `name` string, required
    - `personality` string, nullable, required
    - `title` string, nullable, required
    - `updated_at` string, required
    - `voice` object, nullable, required
      - `accent` string, nullable, required
      - `description` string, nullable, required
      - `gender` 'male' | 'female' | 'other', required
      - `id` integer, required
      - `language` string, nullable, required
      - `model` string, nullable, required: Provider model identifier used to synthesize this voice.
      - `voice_type` 'professional' | 'clone' | 'design', required
    - `voice_id` integer, nullable, required

## Other responses

- `400`: Validation failed or malformed request.
- `401`: Missing or invalid API key.
- `403`: Authenticated, but this API key does not have access to this resource.
- `404`: Resource not found.
- `429`: Rate limit exceeded. Response includes `Retry-After`, `RateLimit`, and `RateLimit-Policy` headers (IETF draft).
- `500`: Internal server error.

---

[API](https://skmtc.dev/jellypod/apis/jellypod-api.md) · [All operations](https://skmtc.dev/jellypod/apis/jellypod-api/llms.txt) · [OpenAPI document](https://skmtc.dev/jellypod/apis/jellypod-api/revisions/ba945de68cf7?raw)
