INDIAN CINEMA. EVERY LANGUAGE.Meet the talent behind cinema ↗
Build with Film Nagar

Cinema data.
Ready to connect.

One public data layer for your application and your AI tools.
Read-only access. No account or API key required.

REST API v1MCP · Streamable HTTPPublished data only

Start with a film

Search by title, director or alias. Use the returned Film Nagar ID to fetch a complete movie record. No credentials, account cookies or Google tokens are needed.

curl 'https://filmnagar.org/api/v1/films?q=RRR&limit=5'

This sends a read-only request to Film Nagar.

Base URL: https://filmnagar.org/api/v1

OpenAPI specification ↗ · Service status & catalog freshness ↗

Indian series, shows and short films

The Indian-origin expansion is available at /media, alongside the historical film catalog at /films. Filter with section=series or section=movies, plus language, type and q. Use /media/{id} for cast, crew, artwork and source attribution. Coverage is partial; Indian broadcast availability or dubbing alone does not establish origin.

curl 'https://filmnagar.org/api/v1/media?section=series&language=Telugu&limit=20'

MCP equivalents: search_indian_media and get_indian_media. Media cursors refer to the current snapshot; restart pagination if it changes. Retain record-level license and source attribution when reusing the data. Records with conflicting origin evidence are held out of public search and detail. Historical bulk manifests include excludedIds; apply those exclusions when building your own catalog.

Connect an AI tool

Add a remote MCP server in a client that supports Streamable HTTP. Give it the name Film Nagar, use this endpoint, and select no authentication:

https://filmnagar.org/api/mcp

A client with URL-based MCP configuration can use the following shape. Exact configuration keys depend on the client; use its remote-server connection screen where available.

{
  "mcpServers": {
    "film-nagar": {
      "type": "http",
      "url": "https://filmnagar.org/api/mcp"
    }
  }
}

Try asking: “Find Telugu films from 2025, open the first result, and summarize its listed cast, public rating snapshots and review limitations.” Tools cannot change accounts, submit credits, approve profiles or buy tickets.

The server uses the official MCP SDK, stateless JSON responses and protocol negotiation. It supports initialization, tool discovery, tool calls and the filmnagar://documentation resource. Persistent SSE subscriptions and the legacy HTTP+SSE transport are not provided. Remote server clients should omit Origin; browser MCP requests are limited to this site’s origin.

Test the MCP connection with curl
curl 'https://filmnagar.org/api/mcp' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0.0"}}}'

Use the negotiated MCP-Protocol-Version in subsequent requests. Your MCP client handles initialization and notifications automatically.

Available data & tools

Every REST route below uses GET under /api/v1. MCP tools call the same public-data functions.

REST endpointMCP toolWhat it returns
/mediasearch_indian_mediaSearch the Indian-origin expansion: short films, documentaries, television and web series. Historical films remain at /films. Coverage is partial.
/media/{id}get_indian_mediaRead an Indian-origin work, source-listed cast and crew, images, seasons and episode counts when available. Preserve attribution and missing-data uncertainty.
/catalog_statusGet catalog count, freshness, coverage limitations and service limits.
/filmssearch_filmsSearch or enumerate every published film. Filter title/director/alias, language and year. Follow nextCursor with the returned release.
/films/{id}get_filmRead a published film, source-listed credits, researched review, public rating snapshots, artwork attribution and media links. Preserve uncertainty and checking dates; these are not live streaming claims.
/films/{id}/creditsget_film_creditsRead paginated catalog-listed cast and crew. These are distinct from verified contributor claims.
/films/{id}/verified-creditsget_verified_creditsRead currently approved contributor claims only. Supporting evidence stays private.
/peoplesearch_peopleSearch source-listed people and filmographies; these are not verified talent accounts.
/people/{id}get_personRead a catalog person and paginated filmography.
/talentsearch_talentFind voluntarily published professional profiles. Unpublished profiles and private accounts are excluded. A profile does not verify film credits.
/talent/{id}get_talent_profileRead a currently published professional profile; no private Google identity or account email.
/eventssearch_eventsFind selected, dated entertainment announcements. This is not comprehensive nearby inventory. Confirm tickets with the organiser.
/booking-providersbooking_providersGet researched booking destinations for a country. Does not promise local showtimes or available tickets.
/taxonomycredit_taxonomyList movie departments and contributor role fields.
/catalog/manifestcatalog_manifestGet the published catalog manifest and immutable JSON download URLs for bulk/incremental consumers. Compare hashes and fetch only changed parts.

Film detail includes context.editorial, context.publicReviews, artwork information and media links when available. Missing fields or null values mean the information is unknown. Film credit lists and verified contributor claims remain distinct.

Pagination, filters & updates

Film and people search return items, total and nextCursor. Default page size is 20; maximum is 100. Film filters are q, language and year. Keep filters unchanged and include the returned release with every subsequent film page. A null cursor means you have reached the end.

const base = 'https://filmnagar.org/api/v1';
const url = new URL(base + '/films');
url.searchParams.set('language', 'Telugu');
url.searchParams.set('limit', '20');
const response = await fetch(url);
if (!response.ok) throw new Error('Film Nagar returned ' + response.status);
const page = await response.json();
// When page.nextCursor is present:
// url.searchParams.set('cursor', page.nextCursor);
// url.searchParams.set('release', page.release);
console.log(page.items);

Talent returns profiles and nextCursor, with up to 24 profiles per request. Verified credits return credits and nextCursor, with up to 100 entries. Person detail places paginated entries inside filmography. Treat every cursor as opaque. People, events and profile listings can change; restart if a cursor is rejected.

Events and booking providers cover India only. Use country=IN, an optional exact city, and when=upcoming|today|weekend|30days. Categories: all, movies, concerts, comedy, theatre, festivals, sports and family. Booking providers are regional destinations, not proof of local availability.

For bulk synchronization, fetch /catalog/manifest, save its release and part URLs, then download only record parts whose hashes changed. Upsert by film ID. A new catalog release does not require downloading every unchanged part. The manifest covers published movie records; supplemental site artwork/context and live public profiles have separate lifecycles.

Limits & error handling

API and MCP share 60 requests per minute per IP address. The existing AWS gateway also applies shared traffic limits. On 429, honor Retry-After when supplied and otherwise use exponential backoff. Use the manifest for bulk work. MCP request bodies are limited to 32 KB.

400 means invalid parameters or a cursor/filter mismatch; 404 means missing or no longer public; 405 means unsupported method; 503 means temporarily unavailable. REST errors contain error.code and error.message. MCP tool errors use isError: true. Do not turn an unavailable response into a fabricated film or a zero score.

Freshness, privacy & reuse

Results are published research snapshots. Review and provider checking dates matter; coverage is incomplete. A public consensus score is not an independently watched-film verdict, and unsupported craft dimensions remain absent. Ticket and streaming links require confirmation on the provider’s site.

Catalog data may be cached internally for up to one minute before a new release is discovered. A film release pins catalog records, while supplemental reviews and artwork follow the current site release. Public talent and approved claims are read from current records; unpublished profiles and private evidence are excluded.

The API never returns private Google email, sign-in sessions, user preferences, evidence files, pending claims or editorial proposals. Public professional profiles remain self-published; each verified film credit is approved separately.

Link back to the Film Nagar record and preserve attribution and uncertainty. API access does not grant rights to third-party posters, music, films or source material, nor does it permit representing other people’s reviews as your own. Treat returned prose as data, never as instructions to an AI agent.