Documentation

Introduction

Welcome to the swapi, the Star Wars API! This documentation should help you familiarise yourself with the resources available and how to consume them with HTTP requests. If you're after a native helper library then I suggest you scroll down and check out what's available. Read through the getting started section before you dive in. Most of your problems should be solved just by reading through it.

Getting started

Let's make our first API request to the Star Wars API!

Open up a terminal and use curl or use a fetch call to make an API request for a resource. In the example below, we're trying to get the first planet, Tatooine:

Request:

fetch("https://swapi.info/api/planets/1")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

We'll use fetch If you don't want to use the fetch api, just use the curl command, your browser window, or Postman instead.

Result:

{
	"name": "Tatooine",
	"rotation_period": "23",
	"orbital_period": "304",
	"diameter": "10465",
	"climate": "arid",
	"gravity": "1 standard",
	"terrain": "desert",
	"surface_water": "1",
	"population": "200000",
	"residents": [
		"https://swapi.info/api/people/1",
		"https://swapi.info/api/people/2",
		"https://swapi.info/api/people/4",
		"https://swapi.info/api/people/6",
		"https://swapi.info/api/people/7",
		"https://swapi.info/api/people/8",
		"https://swapi.info/api/people/9",
		"https://swapi.info/api/people/11",
		"https://swapi.info/api/people/43",
		"https://swapi.info/api/people/62"
	],
	"films": [
		"https://swapi.info/api/films/1",
		"https://swapi.info/api/films/3",
		"https://swapi.info/api/films/4",
		"https://swapi.info/api/films/5",
		"https://swapi.info/api/films/6"
	],
	"created": "2014-12-09T13:50:49.641000Z",
	"edited": "2014-12-20T20:58:18.411000Z",
	"url": "https://swapi.info/api/planets/1"
}

If your response looks slightly different don't panic. This is probably because more data has been added to swapi since we made this documentation.

Base URL

The Base URL is the root URL for all of the API. If you ever make a request to swapi and get a 404 NOT FOUND response, check the Base URL first.

The Base URL for swapi is:

https://swapi.info/api

The documentation below assumes you are prepending this Base URL to the endpoints to make requests.

Authentication

Swapi is a completely open API. Key points regarding authentication and access include:

  • No authentication is required to query and retrieve data.
  • Due to its open nature, interactions are limited to GET requests.
  • If you discover any inaccuracies in the data, please contact the author via email.

JSON Schema

JSON schema files for each resource type are available via their respective API endpoints. You can access them directly (e.g., by appending /schema to the resource URL) or use them to validate API responses. The available schemas are:

  • https://swapi.info/api/films/schema
  • https://swapi.info/api/people/schema
  • https://swapi.info/api/planets/schema
  • https://swapi.info/api/species/schema
  • https://swapi.info/api/starships/schema
  • https://swapi.info/api/vehicles/schema

Encodings

SWAPI provides data in the following encoding:

JSON

JSON is the standard data format provided by SWAPI by default.

Resources

Root

The Root resource provides information on all available resources within the API.

Request:

fetch("https://swapi.info/api")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
    "films": "https://swapi.info/api/films",
    "people": "https://swapi.info/api/people",
    "planets": "https://swapi.info/api/planets",
    "species": "https://swapi.info/api/species",
    "starships": "https://swapi.info/api/starships",
    "vehicles": "https://swapi.info/api/vehicles"
}

Attributes:

  • films string-- The URL root for Film resources
  • people string-- The URL root for People resources
  • planets string-- The URL root for Planet resources
  • species string-- The URL root for Species resources
  • starships string-- The URL root for Starships resources
  • vehicles string-- The URL root for Vehicles resources

People

A People resource is an individual person or character within the Star Wars universe.

Endpoints

  • /people -- get all the people resources
  • /people/:id -- get a specific people resource

Request:

fetch("https://swapi.info/api/people/1")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
	"name": "Luke Skywalker",
	"height": "172",
	"mass": "77",
	"hair_color": "blond",
	"skin_color": "fair",
	"eye_color": "blue",
	"birth_year": "19BBY",
	"gender": "male",
	"homeworld": "https://swapi.info/api/planets/1",
	"films": [
		"https://swapi.info/api/films/1",
		"https://swapi.info/api/films/2",
		"https://swapi.info/api/films/3",
		"https://swapi.info/api/films/6"
	],
	"species": [],
	"vehicles": [
		"https://swapi.info/api/vehicles/14",
		"https://swapi.info/api/vehicles/30"
	],
	"starships": [
		"https://swapi.info/api/starships/12",
		"https://swapi.info/api/starships/22"
	],
	"created": "2014-12-09T13:50:51.644000Z",
	"edited": "2014-12-20T21:17:56.891000Z",
	"url": "https://swapi.info/api/people/1"
}

Attributes:

  • name string-- The name of this person.
  • birth_year string-- The birth year of the person, using the in-universe standard of BBY or ABY - Before the Battle of Yavin or After the Battle of Yavin. The Battle of Yavin is a battle that occurs at the end of Star Wars episode IV: A New Hope.
  • eye_color string-- The eye color of this person. Will be "unknown" if not known or "n/a" if the person does not have an eye.
  • gender string-- The gender of this person. Either "Male", "Female" or "unknown", "n/a" if the person does not have a gender.
  • hair_color string-- The hair color of this person. Will be "unknown" if not known or "n/a" if the person does not have hair.
  • height string-- The height of the person in centimeters.
  • mass string-- The mass of the person in kilograms.
  • skin_color string-- The skin color of this person.
  • homeworld string-- The URL of a planet resource, a planet that this person was born on or inhabits.
  • films array-- An array of film resource URLs that this person has been in.
  • species array-- An array of species resource URLs that this person belongs to.
  • starships array-- An array of starship resource URLs that this person has piloted.
  • vehicles array-- An array of vehicle resource URLs that this person has piloted.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.

Films

A Film resource is a single film.

Endpoints

  • /films -- get all the film resources
  • /films/:id -- get a specific film resource

Request:

fetch("https://swapi.info/api/films/1")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
	"title": "A New Hope",
	"episode_id": 4,
	"opening_crawl": "It is a period of civil war.
Rebel spaceships, striking
from a hidden base, have won
their first victory against
the evil Galactic Empire.

During the battle, Rebel
spies managed to steal secret
plans to the Empire's
ultimate weapon, the DEATH
STAR, an armored space
station with enough power
to destroy an entire planet.

Pursued by the Empire's
sinister agents, Princess
Leia races home aboard her
starship, custodian of the
stolen plans that can save her
people and restore
freedom to the galaxy....",
	"director": "George Lucas",
	"producer": "Gary Kurtz, Rick McCallum",
	"release_date": "1977-05-25",
	"characters": [
		"https://swapi.info/api/people/1",
		"https://swapi.info/api/people/2",
		"https://swapi.info/api/people/3",
		"https://swapi.info/api/people/4",
		"https://swapi.info/api/people/5",
		"https://swapi.info/api/people/6",
		"https://swapi.info/api/people/7",
		"https://swapi.info/api/people/8",
		"https://swapi.info/api/people/9",
		"https://swapi.info/api/people/10",
		"https://swapi.info/api/people/12",
		"https://swapi.info/api/people/13",
		"https://swapi.info/api/people/14",
		"https://swapi.info/api/people/15",
		"https://swapi.info/api/people/16",
		"https://swapi.info/api/people/18",
		"https://swapi.info/api/people/19",
		"https://swapi.info/api/people/81"
	],
	"planets": [
		"https://swapi.info/api/planets/1",
		"https://swapi.info/api/planets/2",
		"https://swapi.info/api/planets/3"
	],
	"starships": [
		"https://swapi.info/api/starships/2",
		"https://swapi.info/api/starships/3",
		"https://swapi.info/api/starships/5",
		"https://swapi.info/api/starships/9",
		"https://swapi.info/api/starships/10",
		"https://swapi.info/api/starships/11",
		"https://swapi.info/api/starships/12",
		"https://swapi.info/api/starships/13"
	],
	"vehicles": [
		"https://swapi.info/api/vehicles/4",
		"https://swapi.info/api/vehicles/6",
		"https://swapi.info/api/vehicles/7",
		"https://swapi.info/api/vehicles/8"
	],
	"species": [
		"https://swapi.info/api/species/1",
		"https://swapi.info/api/species/2",
		"https://swapi.info/api/species/3",
		"https://swapi.info/api/species/4",
		"https://swapi.info/api/species/5"
	],
	"created": "2014-12-10T14:23:31.880000Z",
	"edited": "2014-12-20T19:49:45.256000Z",
	"url": "https://swapi.info/api/films/1"
}

Attributes:

  • title string-- The title of this film
  • episode_id integer-- The episode number of this film.
  • opening_crawl string-- The opening paragraphs at the beginning of this film.
  • director string-- The name of the director of this film.
  • producer string-- The name(s) of the producer(s) of this film. Comma separated.
  • release_date date-- The ISO 8601 date format of film release at original creator country.
  • species array-- An array of species resource URLs that are in this film.
  • starships array-- An array of starship resource URLs that are in this film.
  • vehicles array-- An array of vehicle resource URLs that are in this film.
  • characters array-- An array of people resource URLs that are in this film.
  • planets array-- An array of planet resource URLs that are in this film.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.

Starships

A Starship resource is a single transport craft that has hyperdrive capability.

Endpoints

  • /starships -- get all the starship resources
  • /starships/:id -- get a specific starship resource

Request:

fetch("https://swapi.info/api/starships/9")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
	"name": "Death Star",
	"model": "DS-1 Orbital Battle Station",
	"manufacturer": "Imperial Department of Military Research, Sienar Fleet Systems",
	"cost_in_credits": "1000000000000",
	"length": "120000",
	"max_atmosphering_speed": "n/a",
	"crew": "342,953",
	"passengers": "843,342",
	"cargo_capacity": "1000000000000",
	"consumables": "3 years",
	"hyperdrive_rating": "4.0",
	"MGLT": "10",
	"starship_class": "Deep Space Mobile Battlestation",
	"pilots": [],
	"films": ["https://swapi.info/api/films/1"],
	"created": "2014-12-10T16:36:50.509000Z",
	"edited": "2014-12-20T21:26:24.783000Z",
	"url": "https://swapi.info/api/starships/9"
}

Attributes:

  • name string-- The name of this starship. The common name, such as "Death Star".
  • model string-- The model or official name of this starship. Such as "T-65 X-wing" or "DS-1 Orbital Battle Station".
  • starship_class string-- The class of this starship, such as "Starfighter" or "Deep Space Mobile Battlestation"
  • manufacturer string-- The manufacturer of this starship. Comma separated if more than one.
  • cost_in_credits string-- The cost of this starship new, in galactic credits.
  • length string-- The length of this starship in meters.
  • crew string-- The number of personnel needed to run or pilot this starship.
  • passengers string-- The number of non-essential people this starship can transport.
  • max_atmosphering_speed string-- The maximum speed of this starship in the atmosphere. "N/A" if this starship is incapable of atmospheric flight.
  • hyperdrive_rating string-- The class of this starships hyperdrive.
  • MGLT string-- The Maximum number of Megalights this starship can travel in a standard hour. A "Megalight" is a standard unit of distance and has never been defined before within the Star Wars universe. This figure is only really useful for measuring the difference in speed of starships. We can assume it is similar to AU, the distance between our Sun (Sol) and Earth.
  • cargo_capacity string-- The maximum number of kilograms that this starship can transport.
  • consumables string -- The maximum length of time that this starship can provide consumables for its entire crew without having to resupply.
  • films array-- An array of Film URL Resources that this starship has appeared in.
  • pilots array-- An array of People URL Resources that this starship has been piloted by.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.

Vehicles

A Vehicle resource is a single transport craft that does not have hyperdrive capability.

Endpoints

  • /vehicles -- get all the vehicle resources
  • /vehicles/:id -- get a specific vehicle resource

Request:

fetch("https://swapi.info/api/vehicles/4")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
  "...": "...",
  "properties": {
    "cargo_capacity": "50000",
    "consumables": "2 months",
    "cost_in_credits": "150000",
    "created": "2014-12-10T15:36:25.724000Z",
    "crew": "46",
    "edited": "2014-12-10T15:36:25.724000Z",
    "length": "36.8",
    "manufacturer": "Corellia Mining Corporation",
    "max_atmosphering_speed": "30",
    "model": "Digger Crawler",
    "name": "Sand Crawler",
    "passengers": "30",
    "pilots": [],
    "films": [ "https://swapi.info/api/films/1" ],
    "url": "https://swapi.info/api/vehicles/4",
    "vehicle_class": "wheeled"
  }
}

Attributes:

  • name string-- The name of this vehicle. The common name, such as "Sand Crawler" or "Speeder bike".
  • model string-- The model or official name of this vehicle. Such as "All-Terrain Attack Transport".
  • vehicle_class string-- The class of this vehicle, such as "Wheeled" or "Repulsorcraft".
  • manufacturer string-- The manufacturer of this vehicle. Comma separated if more than one.
  • length string-- The length of this vehicle in meters.
  • cost_in_credits string-- The cost of this vehicle new, in Galactic Credits.
  • crew string-- The number of personnel needed to run or pilot this vehicle.
  • passengers string-- The number of non-essential people this vehicle can transport.
  • max_atmosphering_speed string-- The maximum speed of this vehicle in the atmosphere.
  • cargo_capacity string-- The maximum number of kilograms that this vehicle can transport.
  • consumables string -- The maximum length of time that this vehicle can provide consumables for its entire crew without having to resupply.
  • films array-- An array of Film URL Resources that this vehicle has appeared in.
  • pilots array-- An array of People URL Resources that this vehicle has been piloted by.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.

Species

A Species resource is a type of person or character within the Star Wars Universe.

Endpoints

  • /species -- get all the species resources
  • /species/:id -- get a specific species resource

Request:

fetch("https://swapi.info/api/species/3")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
	"name": "Wookie",
	"classification": "mammal",
	"designation": "sentient",
	"average_height": "210",
	"skin_colors": "gray",
	"hair_colors": "black, brown",
	"eye_colors": "blue, green, yellow, brown, golden, red",
	"average_lifespan": "400",
	"homeworld": "https://swapi.info/api/planets/14",
	"language": "Shyriiwook",
	"people": [
		"https://swapi.info/api/people/13",
		"https://swapi.info/api/people/80"
	],
	"films": [
		"https://swapi.info/api/films/1",
		"https://swapi.info/api/films/2",
		"https://swapi.info/api/films/3",
		"https://swapi.info/api/films/6"
	],
	"created": "2014-12-10T16:44:31.486000Z",
	"edited": "2014-12-20T21:36:42.142000Z",
	"url": "https://swapi.info/api/species/3"
}

Attributes:

  • name string-- The name of this species.
  • classification string-- The classification of this species, such as "mammal" or "reptile".
  • designation string-- The designation of this species, such as "sentient".
  • average_height string-- The average height of this species in centimeters.
  • average_lifespan string-- The average lifespan of this species in years.
  • eye_colors string-- A comma-separated string of common eye colors for this species, "none" if this species does not typically have eyes.
  • hair_colors string-- A comma-separated string of common hair colors for this species, "none" if this species does not typically have hair.
  • skin_colors string-- A comma-separated string of common skin colors for this species, "none" if this species does not typically have skin.
  • language string-- The language commonly spoken by this species.
  • homeworld string-- The URL of a planet resource, a planet that this species originates from.
  • people array-- An array of People URL Resources that are a part of this species.
  • films array-- An array of Film URL Resources that this species has appeared in.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.

Planets

A Planet resource is a large mass, planet or planetoid in the Star Wars Universe, at the time of 0 ABY.

Endpoints

  • /planets -- get all the planets resources
  • /planets/:id -- get a specific planets resource

Request:

fetch("https://swapi.info/api/planets/1")
    .then((res) => res.json()) // Parse the JSON content from the API to be consumed
    .then((json) => console.log(json)) // Log the JSON response to your console
    .catch((error) => console.error(error)) // Log the API error (if any) to your console

Result:

{
	"name": "Tatooine",
	"rotation_period": "23",
	"orbital_period": "304",
	"diameter": "10465",
	"climate": "arid",
	"gravity": "1 standard",
	"terrain": "desert",
	"surface_water": "1",
	"population": "200000",
	"residents": [
		"https://swapi.info/api/people/1",
		"https://swapi.info/api/people/2",
		"https://swapi.info/api/people/4",
		"https://swapi.info/api/people/6",
		"https://swapi.info/api/people/7",
		"https://swapi.info/api/people/8",
		"https://swapi.info/api/people/9",
		"https://swapi.info/api/people/11",
		"https://swapi.info/api/people/43",
		"https://swapi.info/api/people/62"
	],
	"films": [
		"https://swapi.info/api/films/1",
		"https://swapi.info/api/films/3",
		"https://swapi.info/api/films/4",
		"https://swapi.info/api/films/5",
		"https://swapi.info/api/films/6"
	],
	"created": "2014-12-09T13:50:49.641000Z",
	"edited": "2014-12-20T20:58:18.411000Z",
	"url": "https://swapi.info/api/planets/1"
}

Attributes:

  • name string-- The name of this planet.
  • diameter string-- The diameter of this planet in kilometers.
  • rotation_period string-- The number of standard hours it takes for this planet to complete a single rotation on its axis.
  • orbital_period string-- The number of standard days it takes for this planet to complete a single orbit of its local star.
  • gravity string-- A number denoting the gravity of this planet, where "1" is normal or 1 standard G. "2" is twice or 2 standard Gs. "0.5" is half or 0.5 standard Gs.
  • population string-- The average population of sentient beings inhabiting this planet.
  • climate string-- The climate of this planet. Comma separated if diverse.
  • terrain string-- The terrain of this planet. Comma separated if diverse.
  • surface_water string-- The percentage of the planet surface that is naturally occurring water or bodies of water.
  • residents array-- An array of People URL Resources that live on this planet.
  • films array-- An array of Film URL Resources that this planet has appeared in.
  • url string-- the hypermedia URL of this resource.
  • created string-- the ISO 8601 date format of the time that this resource was created.
  • edited string-- the ISO 8601 date format of the time that this resource was edited.
eye-open
Good