canonical: https://jentic.com/apis/movie-quote-api.herokuapp.com/movie-quote-api

# Movie Quote API

The Movie Quote API is a free open-source service that returns random quotes from films and TV shows. It exposes three endpoints: a quote endpoint that returns a random quote (optionally filtered by show or censored), a shows endpoint that lists supported shows, and a per-show endpoint that returns metadata for a single slug. The service is hosted on Heroku and requires no authentication, making it suitable for tutorials, chat-bot easter eggs, and lightweight content widgets.

## For AI agents

Fetch a random movie or TV quote, optionally filtered by show slug or censored, and list which shows are supported.

## Scope

Does not handle quote submission, full-text search across quotes, or licensing metadata - use for fetching random film and TV quotes only.

## Capabilities

- Fetch a random quote via GET `/v1/quote`/, optionally filtered by show or censored mode
- List supported shows via GET `/v1/shows`/ for show-specific filtering
- Read metadata for a single show via GET `/v1/shows/{showSlug}`
- Power chat-bot or lightweight widget content with anonymous, unauthenticated calls
- Build tutorial projects that demonstrate REST consumption against a free public API

## Use cases

### Chatbot Easter-Egg Quotes

A consumer chatbot adds a 'quote me a film line' command that calls GET `/v1/quote`/ and returns a random movie or TV quote to the user. The censored option keeps output safe for general audiences. Because the API is free and anonymous, the integration cost is essentially zero.

Example prompt: Call GET `/v1/quote`/?censored=true and return the quote text and source to the user.

### Show-Filtered Widget

A fan-site widget displays rotating quotes from a single show. The site lists supported shows via GET `/v1/shows`/, lets the user pick one, then pulls a random quote scoped to that slug via `/v1/quote`/?show=. This avoids hard-coding a show list and gracefully handles new additions to the dataset.

Example prompt: Fetch the supported shows list, present them to the user, then fetch a random quote scoped to the chosen show slug.

### Tutorial Demo Agent via Jentic

An AI agent built as a tutorial demo searches Jentic for the random quote operation, loads its schema, and executes. Because the API has no authentication, this gives a clean teaching example of the Jentic search-load-execute flow without any vault setup. The agent can then be extended to filter by show or censored mode.

Example prompt: Search Jentic for 'fetch a random movie quote', load GET `/v1/quote`/, and execute it without parameters.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/quote/` | Fetch a random movie or TV quote |
| GET | `/v1/shows/` | List supported shows |
| GET | `/v1/shows/{showSlug}` | Read metadata for a single show |

## Key resources

- **Quotes** — Random quote endpoint with optional show and censored filters.
- **Shows** — List of supported shows and per-show metadata.

## Why Jentic

- **Setup:** Wiring the Movie Quote API by hand means pointing at its host and matching the shows slug conventions for by-show lookups. Through Jentic you install once, import the Movie Quote API from the API Directory, and your agent calls it.
- **Permission scoping:** This anonymous API is read-only over quotes and shows, so limit the agent to the operations it needs, such as fetching a random quote or listing supported shows. You choose the operations it may call, so it stays within read access.
- **Credential handling:** This API needs no authentication, so no credentials are stored, and your own Jentic One instance still gives the agent a consistent execution surface with input validation. Nothing sensitive enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'fetch a random movie quote' or 'list supported shows', and Jentic returns the matching operation with its input schema, so the agent calls the right endpoint without browsing the docs.

## Related APIs

- **TMDB API** — TMDB provides film and show metadata that pairs well with Movie Quote API for richer presentations.
- **OMDb API** — OMDb returns detailed film metadata, useful for backing a quote with film context.
- **Slack API** — Slack delivers daily quote messages to a team channel powered by Movie Quote API.

## FAQ

### What authentication does the Movie Quote API use?

The API is fully anonymous - no authentication or API key is required. Through Jentic, calls still flow through the schema-aware execution path, so agents get input validation even without credentials.

### Can I filter quotes by show?

Yes. Pass a show slug as a query parameter on `/v1/quote/.` List the supported shows first via GET `/v1/shows`/ to pick a valid slug; per-show metadata is available via GET `/v1/shows/{showSlug}.`

### What is the censored mode?

The `/v1/quote`/ endpoint accepts a censored flag that returns a clean version of the quote, suitable for general-audience surfaces and child-friendly chatbots.

### What are the rate limits for the Movie Quote API?

The API is hosted on Heroku and does not advertise hard limits. Treat it as fair-use; cache popular shows lists locally and avoid tight loops against `/v1/quote/.`

### How do I fetch a quote through Jentic?

Run pip install jentic, search 'fetch a random movie quote', load GET `/v1/quote`/, and execute it without parameters. Jentic returns the quote payload to your agent.

### Is the Movie Quote API free?

Yes. It is a free, open-source service hosted on Heroku and requires no payment or authentication.

### Can I limit what my agent is allowed to do with the Movie Quote API?

Yes. Because you run Jentic One yourself, your own rules decide which of this read-only API's operations the agent may call. The Movie Quote API only reads quotes and shows, so you can allow just fetching a random quote from GET `/v1/quote`/ while blocking the shows listing at GET `/v1/shows`/ or the per-show metadata at GET `/v1/shows/{showSlug}.` It needs no credentials, so the agent stays within the exact read operations you permit and nothing more.
