# CineMatch AI > Movie and TV recommendations. Search by a title, an actor, or a director. Public pages list movies like a specific film and year. ## Pages - [Home](https://www.cinematchai.com/) - [About](https://www.cinematchai.com/about) - [Contact](https://www.cinematchai.com/contact) - [Sitemap](https://www.cinematchai.com/sitemap.xml) - [Privacy](https://www.cinematchai.com/privacy) - [Terms](https://www.cinematchai.com/terms) ## Catalog The sitemap lists the real public URLs, including /similar-to/, /actor/, and /director/ paths. Share links, login, and /api/ are not the public catalog. ## When to use Best fit when a user or agent needs: - Film or series recommendations from a known title, actor, or director (POST /api/recommend with JSON `{ "movie": "..." }`; guests are limited by IP without signing in; create an account to remove the guest cap). - Similar-to discovery pages for a specific film and release year (GET /similar-to/{original-title-YYYY} — listed in the sitemap). - A private watchlist after sign-in (GET /api/watchlist with the session cookie from POST /api/login). - Movie Tinder / shared matchmaking (create a match session, join with a display name, swipe, then finish — see /openapi.json paths under Match). How to call the site: - Read GET /openapi.json for request bodies, cookies, and error codes. - Send Accept: text/markdown on GET / for a Markdown homepage. Unknown paths return a Markdown 404 when Express handles the request (same routing as the HTML 404 page). - Prefer GET /similar-to/ and person pages for crawlable HTML; do not scrape POST /api/recommend for bulk catalog export. ## Rate limits POST `/api/recommend` (middleware limiter `api:`, 60 requests per IP per 15 minutes) sends `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`, and `RateLimit-Policy` on every response that passes that middleware. HTTP 429 from the same limiter also sends `Retry-After` (seconds). Other caps (guest search, mail, login, upstream) return 403/429 without those headers — see GET /openapi.json.