An API of Ice And Fire Houses API

Noble houses of Westeros and Essos.

Documentation

Specifications

Other Resources

OpenAPI Specification

an-api-of-ice-and-fire-houses-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: An API of Ice And Fire Books Houses API
  version: '1.0'
  description: An API of Ice And Fire is the world's greatest source for quantified and structured data from the universe of A Song of Ice and Fire (and the HBO series Game of Thrones). Three hypermedia resources — Books, Characters, and Houses — are exposed read-only over HTTPS, free of authentication, with RFC 5988 Link-header pagination, conditional caching (ETag / Last-Modified), and version selection via custom media types.
  termsOfService: https://github.com/joakimskoog/AnApiOfIceAndFire/blob/master/LICENSE.md
  contact:
    name: Joakim Skoog (maintainer)
    url: https://github.com/joakimskoog/AnApiOfIceAndFire
  license:
    name: BSD 3-Clause-like
    url: https://github.com/joakimskoog/AnApiOfIceAndFire/blob/master/LICENSE.md
  x-generated-from: documentation
  x-last-validated: '2026-05-30'
servers:
- url: https://anapioficeandfire.com/api
  description: Production
tags:
- name: Houses
  description: Noble houses of Westeros and Essos.
paths:
  /houses:
    get:
      operationId: listHouses
      summary: An API of Ice And Fire List Houses
      description: List noble houses of Westeros and Essos. Supports filtering by name, region, words/motto, and various boolean has-* filters, plus RFC 5988 Link-header pagination.
      tags:
      - Houses
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - name: name
        in: query
        description: Filter houses by exact house name.
        required: false
        schema:
          type: string
      - name: region
        in: query
        description: Filter houses by region (e.g. "The North", "The Reach").
        required: false
        schema:
          type: string
      - name: words
        in: query
        description: Filter houses by house words (motto).
        required: false
        schema:
          type: string
      - name: hasWords
        in: query
        description: Restrict to houses that have (true) or do not have (false) words.
        required: false
        schema:
          type: boolean
      - name: hasTitles
        in: query
        description: Restrict to houses that have (true) or do not have (false) titles.
        required: false
        schema:
          type: boolean
      - name: hasSeats
        in: query
        description: Restrict to houses that have (true) or do not have (false) seats.
        required: false
        schema:
          type: boolean
      - name: hasDiedOut
        in: query
        description: Restrict to extinct (true) or surviving (false) houses.
        required: false
        schema:
          type: boolean
      - name: hasAncestralWeapons
        in: query
        description: Restrict to houses that have (true) or do not have (false) ancestral weapons.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: A paginated list of houses.
          headers:
            Link:
              $ref: '#/components/headers/Link'
            ETag:
              $ref: '#/components/headers/ETag'
            Last-Modified:
              $ref: '#/components/headers/LastModified'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/House'
              examples:
                ListHouses200Example:
                  summary: Default listHouses 200 response
                  x-microcks-default: true
                  value:
                  - url: https://anapioficeandfire.com/api/houses/362
                    name: House Stark of Winterfell
                    region: The North
                    coatOfArms: A running grey direwolf, on an ice-white field
                    words: Winter is Coming
                    titles:
                    - King in the North
                    - Lord of Winterfell
                    - Warden of the North
                    seats:
                    - Winterfell
                    overlord: https://anapioficeandfire.com/api/houses/16
                    founded: Age of Heroes
                    founder: https://anapioficeandfire.com/api/characters/209
                    diedOut: ''
                    ancestralWeapons:
                    - Ice
                    cadetBranches:
                    - https://anapioficeandfire.com/api/houses/170
                    - https://anapioficeandfire.com/api/houses/215
                    swornMembers:
                    - https://anapioficeandfire.com/api/characters/2
                    - https://anapioficeandfire.com/api/characters/148
                    - https://anapioficeandfire.com/api/characters/208
        '304':
          $ref: '#/components/responses/NotModified'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/RateLimited'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /houses/{id}:
    get:
      operationId: getHouse
      summary: An API of Ice And Fire Get House by ID
      description: Retrieve a single house by its numeric ID. Returns the full hypermedia house resource with absolute current-lord, heir, overlord, founder, cadet-branch, and sworn-member URLs.
      tags:
      - Houses
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: The requested house.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            Last-Modified:
              $ref: '#/components/headers/LastModified'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/House'
              examples:
                GetHouse200Example:
                  summary: Default getHouse 200 response
                  x-microcks-default: true
                  value:
                    url: https://anapioficeandfire.com/api/houses/362
                    name: House Stark of Winterfell
                    region: The North
                    coatOfArms: A running grey direwolf, on an ice-white field
                    words: Winter is Coming
                    titles:
                    - King in the North
                    - Lord of Winterfell
                    - Warden of the North
                    seats:
                    - Winterfell
                    overlord: https://anapioficeandfire.com/api/houses/16
                    founded: Age of Heroes
                    founder: https://anapioficeandfire.com/api/characters/209
                    diedOut: ''
                    ancestralWeapons:
                    - Ice
                    cadetBranches:
                    - https://anapioficeandfire.com/api/houses/170
                    - https://anapioficeandfire.com/api/houses/215
                    swornMembers:
                    - https://anapioficeandfire.com/api/characters/2
                    - https://anapioficeandfire.com/api/characters/148
                    - https://anapioficeandfire.com/api/characters/208
        '304':
          $ref: '#/components/responses/NotModified'
        '404':
          $ref: '#/components/responses/NotFound'
        '403':
          $ref: '#/components/responses/RateLimited'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    NotFound:
      description: The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotModified:
      description: The resource has not changed since the version identified by the client's If-None-Match or If-Modified-Since header.
    BadRequest:
      description: Malformed request — invalid query parameter or value.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: The caller has exceeded the per-IP daily rate limit of 20,000 requests. The window resets every 24 hours.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    Id:
      name: id
      in: path
      description: Numeric resource identifier.
      required: true
      schema:
        type: integer
        format: int32
        minimum: 1
      example: 1
    PageSize:
      name: pageSize
      in: query
      description: Items per page (default 10, max 50).
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 50
        default: 10
      example: 10
    Page:
      name: page
      in: query
      description: Page number (1-indexed). Defaults to 1.
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        default: 1
      example: 1
  headers:
    CacheControl:
      description: Cache-Control directives, typically including max-age.
      schema:
        type: string
    Link:
      description: RFC 5988 pagination links with `first`, `prev`, `next`, and `last` relations.
      schema:
        type: string
    ETag:
      description: Strong entity tag for conditional GETs via If-None-Match.
      schema:
        type: string
    LastModified:
      description: Last-modified timestamp for conditional GETs via If-Modified-Since.
      schema:
        type: string
  schemas:
    House:
      type: object
      description: A noble house of Westeros or Essos.
      properties:
        url:
          type: string
          format: uri
          description: Hypermedia self-link for this house.
          example: https://anapioficeandfire.com/api/houses/362
        name:
          type: string
          description: House name.
          example: House Stark of Winterfell
        region:
          type: string
          description: Geographic region.
          example: The North
        coatOfArms:
          type: string
          description: Heraldic description of the house arms.
          example: A running grey direwolf, on an ice-white field
        words:
          type: string
          description: House motto.
          example: Winter is Coming
        titles:
          type: array
          description: Titles held by the house.
          items:
            type: string
          example:
          - King in the North
          - Lord of Winterfell
          - Warden of the North
        seats:
          type: array
          description: Castles and seats held by the house.
          items:
            type: string
          example:
          - Winterfell
        currentLord:
          type: string
          format: uri
          description: URL of the current lord (character) of the house.
        heir:
          type: string
          format: uri
          description: URL of the current heir (character) of the house.
        overlord:
          type: string
          format: uri
          description: URL of the overlord (house) above this house.
          example: https://anapioficeandfire.com/api/houses/16
        founded:
          type: string
          description: Free-text year the house was founded.
          example: Age of Heroes
        founder:
          type: string
          format: uri
          description: URL of the character who founded the house.
          example: https://anapioficeandfire.com/api/characters/209
        diedOut:
          type: string
          description: Free-text year the house died out, if applicable.
          example: ''
        ancestralWeapons:
          type: array
          description: Names of ancestral weapons held by the house.
          items:
            type: string
          example:
          - Ice
        cadetBranches:
          type: array
          description: URLs of cadet branches of this house.
          items:
            type: string
            format: uri
          example:
          - https://anapioficeandfire.com/api/houses/170
          - https://anapioficeandfire.com/api/houses/215
        swornMembers:
          type: array
          description: URLs of characters sworn to this house.
          items:
            type: string
            format: uri
          example:
          - https://anapioficeandfire.com/api/characters/2
          - https://anapioficeandfire.com/api/characters/148
          - https://anapioficeandfire.com/api/characters/208
    Error:
      type: object
      description: Error response envelope.
      properties:
        message:
          type: string
          description: Human-readable error message.
          example: The requested resource could not be found.