Skip to content

Title and Name Queries

Fresh

1. Ratings Data

Retrieve the aggregate user rating and total vote count for a title.

graphql
{
  title(id: "tt0068646") {
    ratingsSummary {
      aggregateRating
      voteCount
    }
  }
}

Response:

json
{
  "data": {
    "title": {
      "ratingsSummary": {
        "aggregateRating": 9.2,
        "voteCount": 1900000
      }
    }
  }
}

2. Plot and Genres

Retrieve the plot summary and genre classifications.

graphql
{
  title(id: "tt0068646") {
    titleText {
      text
    }
    plot {
      plotText {
        plainText
      }
    }
    genres {
      genres {
        text
      }
    }
  }
}

Response:

json
{
  "data": {
    "title": {
      "titleText": { "text": "The Godfather" },
      "plot": {
        "plotText": {
          "plainText": "The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son."
        }
      },
      "genres": {
        "genres": [
          { "text": "Crime" },
          { "text": "Drama" }
        ]
      }
    }
  }
}

3. Technical Specs — Runtime, Release Date, Color

graphql
{
  title(id: "tt0068646") {
    titleText { text }
    runtimeMinutes
    releaseDate {
      day
      month
      year
    }
    technicalSpecifications {
      colorations {
        text
        attributes {
          text
        }
      }
    }
  }
}

Response:

json
{
  "data": {
    "title": {
      "titleText": { "text": "The Godfather" },
      "runtimeMinutes": 175,
      "releaseDate": { "day": 24, "month": 3, "year": 1972 },
      "technicalSpecifications": {
        "colorations": [
          {
            "text": "Color",
            "attributes": []
          }
        ]
      }
    }
  }
}

4. Credits — Cast and Crew

Retrieve the first 5 cast members with character names.

graphql
{
  title(id: "tt0068646") {
    principalCredits(filter: { categories: ["cast"] }) {
      credits(first: 5) {
        edges {
          node {
            name {
              nameText { text }
            }
            characters {
              name
            }
            billingOrder
          }
        }
      }
    }
  }
}

Response:

json
{
  "data": {
    "title": {
      "principalCredits": [
        {
          "credits": {
            "edges": [
              {
                "node": {
                  "name": { "nameText": { "text": "Marlon Brando" } },
                  "characters": [{ "name": "Don Vito Corleone" }],
                  "billingOrder": 1
                }
              },
              {
                "node": {
                  "name": { "nameText": { "text": "Al Pacino" } },
                  "characters": [{ "name": "Michael Corleone" }],
                  "billingOrder": 2
                }
              }
            ]
          }
        }
      ]
    }
  }
}

5. Multiple Credit Categories with GraphQL Aliases

Query cast and director in a single request using GraphQL field aliases.

graphql
{
  title(id: "tt0068646") {
    cast: principalCredits(filter: { categories: ["cast"] }) {
      credits(first: 3) {
        edges {
          node {
            name { nameText { text } }
            characters { name }
          }
        }
      }
    }
    directors: principalCredits(filter: { categories: ["director"] }) {
      credits(first: 1) {
        edges {
          node {
            name { nameText { text } }
          }
        }
      }
    }
  }
}

This returns both cast and directors keys in the response, each scoped to their respective credit categories.


6. Nested Queries — Cast Member's Known-For Titles

Query the cast of Inception and include each actor's known-for titles.

graphql
{
  title(id: "tt1375666") {
    titleText { text }
    principalCredits(filter: { categories: ["cast"] }) {
      credits(first: 5) {
        edges {
          node {
            name {
              nameText { text }
              knownFor(first: 3) {
                edges {
                  node {
                    title {
                      titleText { text }
                    }
                  }
                }
              }
            }
            characters { name }
          }
        }
      }
    }
  }
}

This single request returns the top 5 Inception cast members alongside each person's top 3 known-for titles — all in one network round trip.


7. Keywords with Vote Counts

graphql
{
  title(id: "tt0133093") {
    keywords(first: 10) {
      edges {
        node {
          keyword {
            text {
              text
            }
          }
          voteData {
            earnedVotes
          }
        }
      }
    }
  }
}

Keywords are user-contributed tags. The voteData.earnedVotes field reflects how many users have upvoted that keyword for this title.


8. Awards — Nominations and Wins

Retrieve all Academy Award nominations for The Godfather.

graphql
{
  title(id: "tt0068646") {
    prestigiousAwardSummary {
      award {
        text
      }
      nominations
      wins
    }
    wins: awardNominations(
      first: 20,
      filter: { wins: true }
    ) {
      edges {
        node {
          award {
            event {
              text
            }
            category {
              text
            }
            year
          }
          isWinner
        }
      }
    }
    nominations: awardNominations(
      first: 20,
      filter: { wins: false }
    ) {
      total
    }
  }
}

Use the filter: { wins: true } argument to retrieve only wins, or filter: { wins: false } for nominations that did not win.


9. Episodes — List for a Series

Retrieve the first 10 episodes of a TV series, including season and episode numbers.

graphql
{
  title(id: "tt0903747") {
    titleText { text }
    episodes(first: 10) {
      edges {
        node {
          id
          titleText { text }
          series {
            displayableEpisodeNumber {
              displayableSeason {
                text
              }
              episodeNumber {
                text
              }
            }
          }
          ratingsSummary {
            aggregateRating
          }
        }
      }
    }
  }
}

This example queries Breaking Bad (tt0903747) and returns episode titles, season/episode numbers, and ratings.


10. Cursor-Based Pagination

Retrieve the first page of cast credits, then fetch the next page using the endCursor.

First request — page 1:

graphql
{
  title(id: "tt0068646") {
    principalCredits(filter: { categories: ["cast"] }) {
      credits(first: 5) {
        edges {
          node {
            name { nameText { text } }
          }
          cursor
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}

Second request — page 2 (use endCursor value from first response):

graphql
{
  title(id: "tt0068646") {
    principalCredits(filter: { categories: ["cast"] }) {
      credits(first: 5, after: "END_CURSOR_FROM_FIRST_RESPONSE") {
        edges {
          node {
            name { nameText { text } }
          }
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}

Continue passing the latest endCursor as the after argument until hasNextPage is false.

IMDb API Documentation — Internal Reference