# Final Space API

> Look up the characters, episodes, locations and quotes of Final Space, Olan Rogers' animated series about Gary Goodspeed and his alien friend Mooncake. Find a character by name and get their species, their home world and every episode they are in; read an episode with its cast named and pictured; browse the places in the show and who lives there; or pull a line at random for a channel or a fan page. The service keys everything by number and offers no search, so names are resolved here. No account or API key is required.

App · Film, TV & Fandom · 8 actions. Web page: https://docs.lodol.com/docs/integrations/final-space-api

## Actions

### Get a character

Read everything the Final Space API holds about one character (species, status, hair, the names they also go by, what they can do and a picture) and the two things it holds but does not join: the record for the place they are from, and every episode they appear in. The API can only be asked for a number, so a name, one of their other names, or part of one is resolved against the cast first; a word that fits several of them comes back saying which rather than picking one.

**Inputs**

- Character (`character`, text, required): Who to look up: a name ('Gary Goodspeed'), one of the names they also go by ('Mr. Whiskers'), or the number the API knows them by. Capitals and accents are ignored, and part of a name works when it fits only one of them. A word that fits several comes back saying which, rather than picking one.

**Outputs**

- `abilities` (list)
- `alias` (list): Other names they go by, as the wiki writes them.
- `alternatives` (list): The other records the text could have meant, or -- when it matched nothing -- the names it came closest to.
- `ambiguous` (true/false): True when the text fitted more than one record.
- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many records of this kind the service holds in all.
- `episode_count` (number)
- `episodes` (list): Every episode they appear in, oldest first. The API publishes this join only the other way round.
- `found` (true/false): False when nothing matched, and when the text fitted several records equally well. The rest of the record is then empty rather than a guess.
- `gender` (text)
- `hair` (text)
- `id` (number): The number the API knows them by.
- `image_url` (text): A picture, over HTTPS and under the path the service actually serves it from.
- `image_url_corrected` (true/false): True when the record's own address would not have worked -- plain HTTP, or missing the path segment the file is served under -- and was rebuilt.
- `matched_on` (text): How it matched: 'id', 'name', 'alias', 'starts with', 'word' or 'contains' -- or 'random' for the quote step, which draws a line rather than being told which.
- `name` (text)
- `origin` (text): Where they are from, as free text. Get a location takes it straight.
- `origin_location` (object): The location record their 'origin' names, or nothing when it names no place the API holds.
- `query` (text): What this step was asked for.
- `species` (text)
- `status` (text): Alive, Deceased, Unknown.
- `url` (text): The service's own address for this record, which is how its episodes and locations refer to them.

**Example output**

```json
{
  "abilities": [
    "Piloting",
    "Marksmanship",
    "Hand-to-hand combat"
  ],
  "alias": [
    "The Gary (by Lord Commander and Invictus)",
    "Thunder Bandit(code name)"
  ],
  "alternatives": [],
  "ambiguous": false,
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 47,
  "episode_count": 1,
  "episodes": [
    {
      "air_date": "02/15/2018",
      "air_date_iso": "2018-02-15",
      "id": 1,
      "name": "Chapter 1",
      "url": "https://finalspaceapi.com/api/v0/episode/1"
    }
  ],
  "found": true,
  "gender": "Male",
  "hair": "Blonde",
  "id": 1,
  "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
  "image_url_corrected": false,
  "matched_on": "name",
  "name": "Gary Goodspeed",
  "origin": "Earth",
  "origin_location": {
    "id": 1,
    "image_url": "https://finalspaceapi.com/api/location/image/earth.jpg",
    "image_url_corrected": false,
    "inhabitants": [
      "Humans",
      "Animals",
      "Robots",
      "Aliens"
    ],
    "name": "Earth",
    "notable_residents": [
      "Gary Goodspeed"
    ],
    "resident_count": 1,
    "resident_ids": [
      1
    ],
    "type": "Planet",
    "url": "https://finalspaceapi.com/api/v0/location/1"
  },
  "query": "Gary Goodspeed",
  "species": "Human",
  "status": "Alive",
  "url": "https://finalspaceapi.com/api/v0/character/1"
}
```

### Get a location

Read one place in Final Space (a planet, a dimension, a prison) with who lives there, a picture, and its people twice over: the wiki's own short list of notable residents, named rather than left as web addresses, and every character whose origin is this place, which the API records as free text and joins to nothing.

**Inputs**

- Location (`location`, text, required): Which place: its name ('Tera Con Prime'), part of a name that fits only one, or the number the API knows it by. A character's 'origin' field is the name of one of these, so it can be passed straight in from an earlier step.

**Outputs**

- `alternatives` (list): The other records the text could have meant, or -- when it matched nothing -- the names it came closest to.
- `ambiguous` (true/false): True when the text fitted more than one record.
- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many records of this kind the service holds in all.
- `found` (true/false): False when nothing matched, and when the text fitted several records equally well. The rest of the record is then empty rather than a guess.
- `id` (number): The number the API knows it by.
- `image_url` (text): A picture, over HTTPS and under the path the service actually serves it from.
- `image_url_corrected` (true/false): True when the record's own address would not have worked -- plain HTTP, or missing the path segment the file is served under -- and was rebuilt.
- `inhabitants` (list): Who lives there, as the wiki describes them.
- `matched_on` (text): How it matched: 'id', 'name', 'alias', 'starts with', 'word' or 'contains' -- or 'random' for the quote step, which draws a line rather than being told which.
- `name` (text)
- `native_count` (number)
- `natives` (list): Every character whose origin names this place -- a different set from the notable residents, and one the API does not join at all.
- `notable_residents` (list): The same residents by name.
- `query` (text): What this step was asked for.
- `resident_count` (number)
- `resident_ids` (list): The notable residents as numbers, read out of the addresses the API publishes them as.
- `residents` (list): The notable residents, with a picture each.
- `type` (text): What kind of place it is: a planet, a dimension, a ship.
- `url` (text): The service's own address for it.

**Example output**

```json
{
  "alternatives": [],
  "ambiguous": false,
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 12,
  "found": true,
  "id": 1,
  "image_url": "https://finalspaceapi.com/api/location/image/earth.jpg",
  "image_url_corrected": false,
  "inhabitants": [
    "Humans",
    "Animals",
    "Robots",
    "Aliens"
  ],
  "matched_on": "name",
  "name": "Earth",
  "native_count": 1,
  "natives": [
    {
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
      "name": "Gary Goodspeed",
      "species": "Human",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/1"
    }
  ],
  "notable_residents": [
    "Gary Goodspeed"
  ],
  "query": "Earth",
  "resident_count": 1,
  "resident_ids": [
    1
  ],
  "residents": [
    {
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
      "name": "Gary Goodspeed",
      "species": "Human",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/1"
    }
  ],
  "type": "Planet",
  "url": "https://finalspaceapi.com/api/v0/location/1"
}
```

### Get a quote

Get a line from Final Space, with the character who says it and their picture: one at random, one at random from a particular character, or a chosen one by number. This is the step behind a daily quote in a channel or a line on a fan page. The service publishes its quotes only as one long list, with no route for a single one and no way to filter, so both the drawing and the filtering happen here; set a seed when the same line has to come back every run.

**Inputs**

- Quote number (`quote`, text): Which line, by the number the API knows it by. The service publishes no way to search its quotes and no title to match on, so a number is the only way to ask for a particular one. Leave it blank to be handed a line at random instead.
- Character (`character`, text): Draw the line from this character's lines only -- a name, a name they also go by, or the number the API knows them by. Leave it blank to draw from every line in the show. Use this or the quote number, not both.
- Repeatable seed (`seed`, text): Set this to any text to make the draw repeatable: the same seed picks the same line every run, which is what a test or a screenshot needs. Leave it blank and each run is a different line.

**Outputs**

- `alternatives` (list): The other records the text could have meant, or -- when it matched nothing -- the names it came closest to.
- `ambiguous` (true/false): True when the text fitted more than one record.
- `attribution` (object): Credit for the service and the wiki its data comes from.
- `by` (text): Who says it.
- `catalogue_count` (number): How many records of this kind the service holds in all.
- `character_id` (number): The speaker's number, for passing to another step.
- `character_url` (text): The service's own address for the speaker.
- `found` (true/false): False when nothing matched, and when the text fitted several records equally well. The rest of the record is then empty rather than a guess.
- `id` (number): The number the API knows it by.
- `image_url` (text): A picture, over HTTPS and under the path the service actually serves it from.
- `image_url_corrected` (true/false): True when the record's own address would not have worked -- plain HTTP, or missing the path segment the file is served under -- and was rebuilt.
- `matched_on` (text): How it matched: 'id', 'name', 'alias', 'starts with', 'word' or 'contains' -- or 'random' for the quote step, which draws a line rather than being told which.
- `pool_size` (number): How many lines this step was choosing between: every quote, or just the named character's, or 1 when a number named exactly one.
- `query` (text): What this step was asked for.
- `quote` (text): The line itself.
- `seed` (text): The seed used, if any.
- `selected_by` (text): How this line was picked: 'id' or 'random'.
- `speaker` (object): The character who says it, resolved from the address the quote carries.

**Example output**

```json
{
  "alternatives": [],
  "ambiguous": false,
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "by": "Gary Goodspeed",
  "catalogue_count": 51,
  "character_id": 1,
  "character_url": "https://finalspaceapi.com/api/v0/character/1",
  "found": true,
  "id": 1,
  "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.jpg",
  "image_url_corrected": false,
  "matched_on": "random",
  "pool_size": 22,
  "query": "Gary Goodspeed",
  "quote": "How about fricken\u2019 no?!",
  "seed": null,
  "selected_by": "random",
  "speaker": {
    "id": 1,
    "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
    "name": "Gary Goodspeed",
    "species": "Human",
    "status": "Alive",
    "url": "https://finalspaceapi.com/api/v0/character/1"
  }
}
```

### Get an episode

Read one episode: its title, who directed and wrote it, a still from it, and the cast that appears in it: named and pictured, rather than as the list of web addresses the API publishes. The air date comes back both as the service writes it and as an ISO date that can be sorted and compared. Ask by title or by number; season one's episodes are all 'Chapter' and a number, so 'Chapter' alone comes back asking which.

**Inputs**

- Episode (`episode`, text, required): Which episode: its title ('The Notorious Mrs. Goodspeed'), part of a title that fits only one, or the number the API knows it by. Season one's episodes are all called 'Chapter' and a number, so 'Chapter' on its own comes back asking which.

**Outputs**

- `air_date` (text): The date as the service writes it: 02/15/2018.
- `air_date_iso` (text): The same date as 2018-02-15, so it can be sorted and compared without being parsed. Empty if the service wrote it some other way.
- `air_year` (number)
- `alternatives` (list): The other records the text could have meant, or -- when it matched nothing -- the names it came closest to.
- `ambiguous` (true/false): True when the text fitted more than one record.
- `attribution` (object): Credit for the service and the wiki its data comes from.
- `cast` (list): Each character in it, with a picture, in the order the API lists them.
- `catalogue_count` (number): How many records of this kind the service holds in all.
- `character_count` (number)
- `character_ids` (list): The cast as numbers, read out of the addresses the API publishes them as, ready to pass to another step.
- `characters` (list): The same cast by name, in the order the API lists them.
- `director` (text)
- `found` (true/false): False when nothing matched, and when the text fitted several records equally well. The rest of the record is then empty rather than a guess.
- `id` (number): The number the API knows it by.
- `image_url` (text): A picture, over HTTPS and under the path the service actually serves it from.
- `image_url_corrected` (true/false): True when the record's own address would not have worked -- plain HTTP, or missing the path segment the file is served under -- and was rebuilt.
- `matched_on` (text): How it matched: 'id', 'name', 'alias', 'starts with', 'word' or 'contains' -- or 'random' for the quote step, which draws a line rather than being told which.
- `name` (text): The episode's title.
- `query` (text): What this step was asked for.
- `url` (text): The service's own address for it.
- `writer` (text)

**Example output**

```json
{
  "air_date": "02/15/2018",
  "air_date_iso": "2018-02-15",
  "air_year": 2018,
  "alternatives": [],
  "ambiguous": false,
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "cast": [
    {
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
      "name": "Gary Goodspeed",
      "species": "Human",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/1"
    },
    {
      "id": 5,
      "image_url": "https://finalspaceapi.com/api/character/avatar/avocato.jpg",
      "name": "Avocato",
      "species": "Ventrexian",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/5"
    }
  ],
  "catalogue_count": 36,
  "character_count": 2,
  "character_ids": [
    1,
    5
  ],
  "characters": [
    "Gary Goodspeed",
    "Avocato"
  ],
  "director": "Mike Roberts",
  "found": true,
  "id": 1,
  "image_url": "https://finalspaceapi.com/api/episode/image/chapter1.jpg",
  "image_url_corrected": true,
  "matched_on": "name",
  "name": "Chapter 1",
  "query": "Chapter 1",
  "url": "https://finalspaceapi.com/api/v0/episode/1",
  "writer": "Olan Rogers"
}
```

### List characters

Browse the cast of Final Space: everyone, or only the ones matching a name, a status, a species, a gender or a home. Every row is the same full character record a single lookup returns, so a workflow can filter here and read a picture or a list of abilities straight off. A filter value the show does not use comes back listing the ones it does, rather than as an empty list that reads as 'nobody qualifies'.

**Inputs**

- Search (`search`, text): Keep only the characters whose name, or one of the names they also go by, matches this text. Capitals and accents are ignored. Leave it blank for the whole cast.
- Status (`status`, text): Keep only the characters with this status, as the show's wiki records it. A status the wiki does not use comes back listing the ones it does. Leave it blank for all of them.
- Species (`species`, text): Keep only the characters of this species. A species the show does not have comes back listing the ones it does. Leave it blank for all of them.
- Gender (`gender`, text): Keep only the characters the wiki records this way. It writes some of them at length, so a value it does not use comes back listing the ones it does. Leave it blank for all of them.
- Origin (`origin`, text): Keep only the characters from this place, by the name the wiki gives it. Get a location lists the same people under 'natives'. Leave it blank for all of them.
- Order (`sort`, text): Which way round to list them, by the number the API knows each one by -- which for episodes is the order they were shown in. The service itself honours only the exact word 'desc', so the ordering is applied here and both spellings mean what they say. One of: `asc` (Lowest number first), `desc` (Highest number first). Default: `asc`.
- Most to return (`limit`, number): How many rows to bring back. The default is above the size of every collection the service holds, so leaving it alone returns all of them; the true total is reported either way, so a shorter list says so rather than looking complete. From 1 to 200. Default: `60`.

**Outputs**

- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many characters the service holds in all.
- `character_count` (number): How many matched, whether or not they all fitted in this step.
- `characters` (list): The matching characters.
- `returned_count` (number)
- `sort` (text): The order applied: 'asc' or 'desc'.
- `truncated` (true/false): True when more matched than this step asked for.

**Example output**

```json
{
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 47,
  "character_count": 2,
  "characters": [
    {
      "abilities": [
        "Piloting",
        "Marksmanship",
        "Hand-to-hand combat"
      ],
      "alias": [
        "The Gary (by Lord Commander and Invictus)",
        "Thunder Bandit(code name)"
      ],
      "gender": "Male",
      "hair": "Blonde",
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.png",
      "image_url_corrected": false,
      "name": "Gary Goodspeed",
      "origin": "Earth",
      "species": "Human",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/1"
    },
    {
      "abilities": [
        "Marksmanship",
        "Surgery",
        "Combat prowess"
      ],
      "alias": [
        "General Avocato",
        "Mr. Whiskers (by Gary)"
      ],
      "gender": "Male",
      "hair": "Dark Teal / White",
      "id": 5,
      "image_url": "https://finalspaceapi.com/api/character/avatar/avocato.jpg",
      "image_url_corrected": false,
      "name": "Avocato",
      "origin": "Ventrexia",
      "species": "Ventrexian",
      "status": "Alive",
      "url": "https://finalspaceapi.com/api/v0/character/5"
    }
  ],
  "returned_count": 2,
  "sort": "asc",
  "truncated": false
}
```

### List episodes

Browse the Final Space episode guide, or only the episodes matching a title, a director, a writer, a year, or the ones a particular character is in. That last filter is the join the API publishes only in reverse (an episode lists its cast, but nothing lists a character's episodes), so it is resolved here. Every row carries its air date as an ISO date as well as the service's own spelling. Worth knowing: the show ran to 36 episodes over three seasons, but the data this service publishes stops at the end of season two, so the guide holds 23.

**Inputs**

- Search (`search`, text): Keep only the episodes whose title matches this text. Capitals and accents are ignored. Leave it blank for the whole guide.
- Character (`character`, text): Keep only the ones this character is in. A name, a name they also go by, or the number the API knows them by. Leave it blank for all of them. A name that matches nobody stops the step rather than quietly returning an empty list.
- Director (`director`, text): Keep only the episodes this person directed. A name the guide does not carry comes back listing the ones it does. Leave it blank for all of them.
- Writer (`writer`, text): Keep only the episodes this person wrote. A name the guide does not carry comes back listing the ones it does. Leave it blank for all of them.
- Air year (`year`, number): Keep only the episodes first shown in this year. The show itself ran in 2018, 2019 and 2021, but the service's episode data stops at the end of season two, so only 2018 and 2019 have anything in them. A year the guide does not reach comes back saying which years it does, rather than as an empty list that reads as 'that season does not exist'. Leave it blank for the whole guide.
- Order (`sort`, text): Which way round to list them, by the number the API knows each one by -- which for episodes is the order they were shown in. The service itself honours only the exact word 'desc', so the ordering is applied here and both spellings mean what they say. One of: `asc` (Lowest number first), `desc` (Highest number first). Default: `asc`.
- Most to return (`limit`, number): How many rows to bring back. The default is above the size of every collection the service holds, so leaving it alone returns all of them; the true total is reported either way, so a shorter list says so rather than looking complete. From 1 to 200. Default: `60`.

**Outputs**

- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many episodes the service holds in all.
- `character` (object): The character the list was filtered by, as it was resolved, or nothing when it was not filtered.
- `episode_count` (number): How many matched, whether or not they all fitted in this step.
- `episodes` (list): The matching episodes.
- `returned_count` (number)
- `sort` (text): The order applied: 'asc' or 'desc'.
- `truncated` (true/false): True when more matched than this step asked for.

**Example output**

```json
{
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 36,
  "character": {
    "id": 5,
    "name": "Avocato"
  },
  "episode_count": 1,
  "episodes": [
    {
      "air_date": "02/15/2018",
      "air_date_iso": "2018-02-15",
      "air_year": 2018,
      "character_count": 2,
      "character_ids": [
        1,
        5
      ],
      "characters": [
        "Gary Goodspeed",
        "Avocato"
      ],
      "director": "Mike Roberts",
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/episode/image/chapter1.jpg",
      "image_url_corrected": true,
      "name": "Chapter 1",
      "url": "https://finalspaceapi.com/api/v0/episode/1",
      "writer": "Olan Rogers"
    }
  ],
  "returned_count": 1,
  "sort": "asc",
  "truncated": false
}
```

### List locations

Browse the places in Final Space: all of them, or only the ones matching a name, a kind of place, or who lives there. Every row is the same full location record a single lookup returns, with its notable residents already named.

**Inputs**

- Search (`search`, text): Keep only the places whose name matches this text. Capitals and accents are ignored. Leave it blank for all of them.
- Type (`location_type`, text): Keep only the places of this kind, as the wiki records it. A kind the wiki does not use comes back listing the ones it does. Leave it blank for all of them.
- Inhabitant (`inhabitant`, text): Keep only the places whose list of inhabitants mentions this. Part of a word is enough, and capitals are ignored. Leave it blank for all of them.
- Order (`sort`, text): Which way round to list them, by the number the API knows each one by -- which for episodes is the order they were shown in. The service itself honours only the exact word 'desc', so the ordering is applied here and both spellings mean what they say. One of: `asc` (Lowest number first), `desc` (Highest number first). Default: `asc`.
- Most to return (`limit`, number): How many rows to bring back. The default is above the size of every collection the service holds, so leaving it alone returns all of them; the true total is reported either way, so a shorter list says so rather than looking complete. From 1 to 200. Default: `60`.

**Outputs**

- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many locations the service holds in all.
- `location_count` (number): How many matched, whether or not they all fitted in this step.
- `locations` (list): The matching locations.
- `returned_count` (number)
- `sort` (text): The order applied: 'asc' or 'desc'.
- `truncated` (true/false): True when more matched than this step asked for.

**Example output**

```json
{
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 12,
  "location_count": 1,
  "locations": [
    {
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/location/image/earth.jpg",
      "image_url_corrected": false,
      "inhabitants": [
        "Humans",
        "Animals",
        "Robots",
        "Aliens"
      ],
      "name": "Earth",
      "notable_residents": [
        "Gary Goodspeed"
      ],
      "resident_count": 1,
      "resident_ids": [
        1
      ],
      "type": "Planet",
      "url": "https://finalspaceapi.com/api/v0/location/1"
    }
  ],
  "returned_count": 1,
  "sort": "asc",
  "truncated": false
}
```

### List quotes

Browse the lines from Final Space: all of them, only a particular character's, or only the ones containing some text. The service offers no search of its own, so the matching is done here, ignoring capitals, accents and punctuation so 'dont' finds “don't”. Every row carries the speaker's number, ready to pass to Get a character.

**Inputs**

- Search (`search`, text): Keep only the lines containing this text. Capitals, accents and punctuation are ignored, so 'dont' finds “don't”. Leave it blank for every line.
- Character (`character`, text): Keep only the ones this character is in. A name, a name they also go by, or the number the API knows them by. Leave it blank for all of them. A name that matches nobody stops the step rather than quietly returning an empty list.
- Order (`sort`, text): Which way round to list them, by the number the API knows each one by -- which for episodes is the order they were shown in. The service itself honours only the exact word 'desc', so the ordering is applied here and both spellings mean what they say. One of: `asc` (Lowest number first), `desc` (Highest number first). Default: `asc`.
- Most to return (`limit`, number): How many rows to bring back. The default is above the size of every collection the service holds, so leaving it alone returns all of them; the true total is reported either way, so a shorter list says so rather than looking complete. From 1 to 200. Default: `60`.

**Outputs**

- `attribution` (object): Credit for the service and the wiki its data comes from.
- `catalogue_count` (number): How many quotes the service holds in all.
- `character` (object): The character the list was filtered by, as it was resolved, or nothing when it was not filtered.
- `quote_count` (number): How many matched, whether or not they all fitted in this step.
- `quotes` (list): The matching quotes.
- `returned_count` (number)
- `sort` (text): The order applied: 'asc' or 'desc'.
- `truncated` (true/false): True when more matched than this step asked for.

**Example output**

```json
{
  "attribution": {
    "text": "Data from the Final Space API, sourced from the Final Space Wiki. Final Space and its images are the property of their respective owners.",
    "url": "https://finalspaceapi.com"
  },
  "catalogue_count": 51,
  "character": {
    "id": 1,
    "name": "Gary Goodspeed"
  },
  "quote_count": 1,
  "quotes": [
    {
      "by": "Gary Goodspeed",
      "character_id": 1,
      "character_url": "https://finalspaceapi.com/api/v0/character/1",
      "id": 1,
      "image_url": "https://finalspaceapi.com/api/character/avatar/gary_goodspeed.jpg",
      "image_url_corrected": false,
      "quote": "How about fricken\u2019 no?!"
    }
  ],
  "returned_count": 1,
  "sort": "asc",
  "truncated": false
}
```
