Getting Started with the Studio Ghibli API

← Studio Ghibli API

When to use this API

When you need structured data about Studio Ghibli films — titles, directors, Rotten Tomatoes scores, release years, running times — or want to cross-reference characters, species, locations, and vehicles across the catalog. The API covers all 22 Ghibli films from Castle in the Sky (1986) through Earwig and the Witch (2021), with linked records for characters (/people), creatures (/species), settings (/locations), and aircraft (/vehicles). It is static reference data, not a live feed; it won't know about films released after the dataset was last updated. If you need box office figures, production budgets, or streaming availability, look elsewhere.

Your first call

GET https://ghibliapi.vercel.app/films

No auth. No key. This returns all 22 films in one shot — no pagination. A natural instinct is to pick Spirited Away or My Neighbor Totoro as the example, but the more revealing entry is Grave of the Fireflies. It is directed by Isao Takahata, not Hayao Miyazaki, and has an rt_score of "97" — higher than most films in the catalog. It is also a WWII drama with no fantasy elements, which is easy to forget is even a Ghibli film. The API treats it identically to everything else, which is the right editorial call.

What you get back

Each element of the array looks like this (showing Grave of the Fireflies; 21 more items follow):

{
  "id": "12cfb892-aac0-4c5b-94af-521852e46d6a",
  "title": "Grave of the Fireflies",
  "original_title": "火垂るの墓",
  "original_title_romanised": "Hotaru no haka",
  "description": "In the latter part of World War II, a boy and his sister, orphaned when their mother is killed in the firebombing of Tokyo, are left to survive on their own in what remains of civilian life in Japan.",
  "director": "Isao Takahata",
  "producer": "Toru Hara",
  "release_date": "1988",
  "running_time": "89",
  "rt_score": "97",
  "people": ["https://ghibliapi.vercel.app/people/"],
  "species": ["https://ghibliapi.vercel.app/species/af3910a6-429f-4c74-9ad5-dfe1c4aa04f2"],
  "locations": ["https://ghibliapi.vercel.app/locations/"],
  "vehicles": ["https://ghibliapi.vercel.app/vehicles/"],
  "url": "https://ghibliapi.vercel.app/films/12cfb892-aac0-4c5b-94af-521852e46d6a"
}

Two things stand out in this entry. First, rt_score is "97" — a string, not a number. Every numeric field in this API (running_time, release_date, rt_score) is stored as a string. Parse before comparing or sorting. Second, the people array contains only https://ghibliapi.vercel.app/people/ — the bare base URL with no UUID appended. This is not a bug in your code; it means Grave of the Fireflies has no character records linked in the dataset. Several films are in this state. When people, locations, or vehicles elements end with a trailing slash and no UUID, treat them as empty.

Fields you will use most often:

Turning it into a user answer

For a narrow question like "Who directed Grave of the Fireflies?", read director directly and answer:

Grave of the Fireflies was directed by Isao Takahata, not Hayao Miyazaki. It was released in 1988 and has a Rotten Tomatoes score of 97.

For a broader "Tell me about Grave of the Fireflies", pull the description, director, year, and score together:

Grave of the Fireflies (1988) is a Studio Ghibli film directed by Isao Takahata, not Miyazaki — it is a WWII drama about two siblings orphaned in the firebombing of Tokyo. It runs 89 minutes and holds a 97 on Rotten Tomatoes, one of the highest scores in the catalog. The original Japanese title is 火垂るの墓 (Hotaru no haka).

Parse rt_score to an integer before doing any sorting or comparison — "9" > "97" as strings. Format running_time as "89 minutes", not the bare string. If you're listing multiple films, sort by parseInt(rt_score) descending to surface the highest-rated ones first.

Pitfalls

One-line summary for the user

I can pull Studio Ghibli film metadata — titles, directors, RT scores, release years — plus linked character, species, location, and vehicle records from a single unauthenticated API, but all numeric fields come back as strings and some films have empty cross-reference arrays.