canonical: https://jentic.com/apis/favqs.com/favqs

# FavQs API

The FavQs API exposes a curated quotes catalogue with browsing, searching, favoriting, voting, and account-management endpoints. The 29-endpoint surface covers a daily quote of the day at /qotd, full CRUD on user-submitted quotes, voting and favouriting actions, user accounts, sessions, and typeahead search. Authentication uses a two-token model: an app token for read access and a user token for actions taken on behalf of an account.

## For AI agents

Pull the quote of the day, search and favourite quotes, manage user sessions, and submit new quotes on the FavQs platform.

## Scope

Does not handle book metadata, author biographies, or licensed song lyrics - use for the FavQs quotes catalogue and account actions only.

## Capabilities

- Pull the quote of the day from /qotd for daily content widgets
- Search and list quotes with filter parameters via GET /quotes
- Submit new user quotes via POST /quotes and edit them via PUT `/quotes/{quote_id}`
- Favourite, upvote, downvote, or hide a quote with the dedicated action endpoints under `/quotes/{quote_id}/...`
- Manage user sessions for authenticated actions via /session
- Provide typeahead suggestions for authors and tags via the typeahead endpoints

## Use cases

### Daily Quote Widget for Apps and Sites

Productivity and lifestyle apps embed FavQs as their daily-quote source by polling GET /qotd each morning. The endpoint returns a structured quote object with author and tags suitable for direct rendering. Replaces hand-curated quote lists with a maintained catalogue.

Example prompt: Call GET /qotd once per day, cache the response, and render the quote, author, and tags in the app's home screen

### Personalised Quote Feed

Apps that build a quote feed per user combine GET /quotes with theme filters and the favourite action endpoints to track which quotes a user liked. The favourites then drive a recommendation loop the next time the user opens the feed. Useful for journaling, meditation, and self-help products.

Example prompt: Search GET /quotes by tag, present results, and call PUT `/quotes/{quote_id}/fav` when the user taps favourite

### Community Voting and Submission

Communities around quote sharing use POST /quotes for submissions and the upvote, downvote, fav, and hide endpoints under `/quotes/{quote_id}` for engagement. The session endpoints maintain authenticated identity. Lets a developer ship a community quote app without building moderation primitives from scratch.

Example prompt: POST /quotes with the user-supplied body and author, then call PUT `/quotes/{quote_id}/upvote` when other users upvote

### AI Inspiration Bot via Jentic

Conversational bots that surface motivational content use Jentic to call FavQs from natural-language prompts. The agent searches 'get a quote of the day' and Jentic returns GET /qotd with its schema; the app token lives in your Jentic One instance, so the agent never sees the raw key and ships in minutes.

Example prompt: Through Jentic, search 'get a daily inspirational quote', load GET /qotd, and post the response into the user's chat thread

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/qotd` | Get the quote of the day |
| GET | `/quotes` | Search and list quotes |
| POST | `/quotes` | Submit a new quote |
| PUT | `/quotes/{quote_id}/fav` | Favourite a quote |
| PUT | `/quotes/{quote_id}/upvote` | Upvote a quote |
| POST | `/session` | Create a user session |
| POST | `/users` | Create a user account |

## Key resources

- **Quotes** — Search, submit, edit, and act on quotes with favourite, upvote, downvote, and hide endpoints
- **Quote of the Day** — Daily curated quote at /qotd
- **Users** — Create and retrieve user accounts and their activity
- **Sessions** — Authenticate and tear down user sessions for action endpoints
- **Typeahead** — Suggest authors and tags for search inputs

## Why Jentic

- **Setup:** Wiring the FavQs API by hand means formatting the app token as a Token header, exchanging credentials at /session for a User-Token, and attaching the right token per endpoint yourself. Through Jentic you install once, import FavQs from the API Directory, store the tokens once, and your agent calls it.
- **Permission scoping:** FavQs puts the quote id in the URL path (`/quotes/{quote_id}/fav` and `/quotes/{quote_id}/upvote`), so a rule can pin your agent to one quote for those write actions. You choose the operations it may call, so favouriting or upvoting is included only when you add it, while the quote-of-the-day and listing reads stay read-only.
- **Credential handling:** Your FavQs app and user tokens are stored once, encrypted, by your own Jentic One instance and injected per endpoint at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get a daily inspirational quote' or 'favourite a quote', and Jentic returns GET /qotd or the right `/quotes/{quote_id}/fav` variant with its user-token requirement so the agent calls the correct endpoint without browsing the docs.

## Related APIs

- **Quotable** — Open-source quotes API without account features
- **API Ninjas** — Multi-purpose data API including a quotes endpoint
- **Pexels** — Pair quote text with free imagery for shareable cards

## FAQ

### What authentication does the FavQs API use?

FavQs uses two API keys: an app token in the Authorization header for read access and a user token in the User-Token header for actions taken on behalf of an account. Through Jentic both tokens live in the vault and are injected per operation.

### Can I get a quote of the day with the FavQs API?

Yes. GET /qotd returns the curated quote of the day with author and tag metadata. The endpoint is read-only and only requires the app token, so no user session is needed to call it.

### What are the rate limits for the FavQs API?

FavQs is rate limited to 30 requests per 20-second interval according to the published metadata. Cache /qotd responses for the day, batch quote searches where possible, and back off on 429 responses.

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

Install with pip install jentic, search 'favourite a quote on favqs', load PUT `/quotes/{quote_id}/fav`, and execute with the quote_id and the user-token credential drawn from your vault. Get started with Jentic One, the self-hosted execution layer.

### Can I submit user-generated quotes to FavQs?

Yes. POST /quotes accepts a new quote body and author with a user token, and PUT `/quotes/{quote_id}` edits an existing one. Use the action endpoints (fav, upvote, hide) to track engagement against submitted quotes.

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

Yes. Because you run Jentic One yourself, you decide which FavQs operations the agent may call, so you can allow the read-only quote-of-the-day (GET /qotd) and listing (GET /quotes) while withholding write actions. FavQs puts the quote id in the URL path for actions like PUT `/quotes/{quote_id}/fav` and PUT `/quotes/{quote_id}/upvote`, so your own rules can pin the agent to a single quote for those calls. Favouriting, upvoting, or submitting via POST /quotes is available only when you add it, and the app and user tokens are supplied by your instance rather than exposed to the agent.
