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:
id— UUID used in/films/{id}, also referenced by people/locations/vehicles recordstitle— English display titleoriginal_title— Japanese title in kanji/kanaoriginal_title_romanised— romanized form of the Japanese titledirector— not always Miyazaki; check before assumingrelease_date— four-digit year stringrunning_time— string, in minutesrt_score— Rotten Tomatoes critics score, string; parse to integer before sortingpeople/species/locations/vehicles— arrays of resource URLs; follow each to get the linked record
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
- Every numeric-looking field —
rt_score,running_time,release_date— is a string."97"is not97. Sort or compare only after parsing. - A
people(orlocations,vehicles) element of the formhttps://ghibliapi.vercel.app/people/(trailing slash, no UUID) means the film has no linked records in that category. It is NOT a valid resource URL. Following it returns the full people list, not an empty result, which can silently give you wrong data. - The dataset is frozen and does not auto-update. Films released after the last data update will be absent. Earwig and the Witch (2021) is the newest entry in the current dataset.
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.