FRED Categories API

Category hierarchy navigation — children, related, series, and tags within a category.

OpenAPI Specification

fred-categories-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: FRED Maps API (GeoFRED) Categories API
  version: '1.0'
  description: GeoFRED (the FRED Maps API) exposes geographic / regional views of FRED economic data. Series-group metadata, regional-data lookups across geographies (state, county, MSA, country, census tract, etc.), and GeoJSON shape files for cartographic rendering of FRED indicators.
  contact:
    name: Federal Reserve Bank of St. Louis — Research Division
    url: https://fred.stlouisfed.org/docs/api/geofred/
  license:
    name: U.S. Government Work / Public Domain (most series)
    url: https://fred.stlouisfed.org/legal/
  termsOfService: https://fred.stlouisfed.org/legal/
  x-generated-from: documentation
  x-last-validated: '2026-05-28'
servers:
- url: https://api.stlouisfed.org/geofred
  description: Production GeoFRED API
security:
- ApiKeyAuth: []
tags:
- name: Categories
  description: Category hierarchy navigation — children, related, series, and tags within a category.
paths:
  /category:
    get:
      operationId: getCategory
      summary: FRED Get a Category
      description: Get a category by ID.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        description: Numeric ID of the FRED category to retrieve.
        schema:
          type: integer
          default: 0
        example: 125
      responses:
        '200':
          description: A single category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryList'
              examples:
                Getcategory200Example:
                  summary: Default getCategory 200 response
                  x-microcks-default: true
                  value:
                    categories:
                    - id: 125
                      name: Trade Balance
                      parent_id: 13
                    - id: 13
                      name: International Data
                      parent_id: 0
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /category/children:
    get:
      operationId: getCategoryChildren
      summary: FRED Get the Child Categories for a Category
      description: Get the child categories for a specified parent category.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        description: Parent category ID.
        schema:
          type: integer
          default: 0
        example: 125
      - $ref: '#/components/parameters/RealtimeStart'
      - $ref: '#/components/parameters/RealtimeEnd'
      responses:
        '200':
          description: List of child categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryList'
              examples:
                Getcategorychildren200Example:
                  summary: Default getCategoryChildren 200 response
                  x-microcks-default: true
                  value:
                    categories:
                    - id: 125
                      name: Trade Balance
                      parent_id: 13
                    - id: 13
                      name: International Data
                      parent_id: 0
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /category/related:
    get:
      operationId: getCategoryRelated
      summary: FRED Get the Related Categories for a Category
      description: Get the related categories for a category. Two categories are related when one is not the parent or child of the other but the FRED editorial staff have judged them as related.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        description: The seed category ID.
        schema:
          type: integer
        example: 125
      - $ref: '#/components/parameters/RealtimeStart'
      - $ref: '#/components/parameters/RealtimeEnd'
      responses:
        '200':
          description: List of related categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryList'
              examples:
                Getcategoryrelated200Example:
                  summary: Default getCategoryRelated 200 response
                  x-microcks-default: true
                  value:
                    categories:
                    - id: 125
                      name: Trade Balance
                      parent_id: 13
                    - id: 13
                      name: International Data
                      parent_id: 0
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /category/series:
    get:
      operationId: getCategorySeries
      summary: FRED Get the Series in a Category
      description: Get the series in a category.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        description: The category to enumerate.
        schema:
          type: integer
        example: 125
      - $ref: '#/components/parameters/RealtimeStart'
      - $ref: '#/components/parameters/RealtimeEnd'
      - $ref: '#/components/parameters/Limit1000'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/OrderBySeries'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/FilterVariable'
      - $ref: '#/components/parameters/FilterValue'
      - $ref: '#/components/parameters/TagNames'
      - $ref: '#/components/parameters/ExcludeTagNames'
      responses:
        '200':
          description: Series in the category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SeriesList'
              examples:
                Getcategoryseries200Example:
                  summary: Default getCategorySeries 200 response
                  x-microcks-default: true
                  value:
                    realtime_start: '2026-05-28'
                    realtime_end: '2026-05-28'
                    order_by: series_id
                    sort_order: asc
                    count: 1
                    offset: 0
                    limit: 1000
                    seriess:
                    - id: UNRATE
                      realtime_start: '2026-05-28'
                      realtime_end: '2026-05-28'
                      title: Unemployment Rate
                      observation_start: '1948-01-01'
                      observation_end: '2026-04-01'
                      frequency: Monthly
                      frequency_short: M
                      units: Percent
                      units_short: '%'
                      seasonal_adjustment: Seasonally Adjusted
                      seasonal_adjustment_short: SA
                      last_updated: '2026-05-02 07:46:10-05'
                      popularity: 95
                      group_popularity: 95
                      notes: The unemployment rate represents the number of unemployed as a percentage of the labor force.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /category/tags:
    get:
      operationId: getCategoryTags
      summary: FRED Get the Tags for a Category
      description: Get the FRED tags for a category.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        description: The category to list tags for.
        schema:
          type: integer
        example: 125
      - $ref: '#/components/parameters/RealtimeStart'
      - $ref: '#/components/parameters/RealtimeEnd'
      - $ref: '#/components/parameters/TagNames'
      - $ref: '#/components/parameters/TagGroupId'
      - $ref: '#/components/parameters/SearchText'
      - $ref: '#/components/parameters/Limit1000'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/OrderByTags'
      - $ref: '#/components/parameters/SortOrder'
      responses:
        '200':
          description: Tags for the category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagList'
              examples:
                Getcategorytags200Example:
                  summary: Default getCategoryTags 200 response
                  x-microcks-default: true
                  value:
                    realtime_start: '2026-05-28'
                    realtime_end: '2026-05-28'
                    order_by: series_count
                    sort_order: desc
                    count: 2
                    offset: 0
                    limit: 1000
                    tags:
                    - name: monthly
                      group_id: freq
                      notes: ''
                      created: '2012-02-27 10:18:19-06'
                      popularity: 100
                      series_count: 380000
                    - name: nation
                      group_id: geot
                      notes: ''
                      created: '2012-02-27 10:18:19-06'
                      popularity: 99
                      series_count: 110000
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /category/related_tags:
    get:
      operationId: getCategoryRelatedTags
      summary: FRED Get the Related Tags for a Category
      description: Get the related FRED tags for one or more FRED tags within a category.
      tags:
      - Categories
      parameters:
      - $ref: '#/components/parameters/ApiKey'
      - $ref: '#/components/parameters/FileType'
      - name: category_id
        in: query
        required: true
        schema:
          type: integer
        description: Seed category.
        example: 125
      - $ref: '#/components/parameters/RealtimeStart'
      - $ref: '#/components/parameters/RealtimeEnd'
      - $ref: '#/components/parameters/TagNames'
      - $ref: '#/components/parameters/ExcludeTagNames'
      - $ref: '#/components/parameters/TagGroupId'
      - $ref: '#/components/parameters/SearchText'
      - $ref: '#/components/parameters/Limit1000'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/OrderByTags'
      - $ref: '#/components/parameters/SortOrder'
      responses:
        '200':
          description: Related tags for the category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagList'
              examples:
                Getcategoryrelatedtags200Example:
                  summary: Default getCategoryRelatedTags 200 response
                  x-microcks-default: true
                  value:
                    realtime_start: '2026-05-28'
                    realtime_end: '2026-05-28'
                    order_by: series_count
                    sort_order: desc
                    count: 2
                    offset: 0
                    limit: 1000
                    tags:
                    - name: monthly
                      group_id: freq
                      notes: ''
                      created: '2012-02-27 10:18:19-06'
                      popularity: 100
                      series_count: 380000
                    - name: nation
                      group_id: geot
                      notes: ''
                      created: '2012-02-27 10:18:19-06'
                      popularity: 99
                      series_count: 110000
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    Forbidden:
      description: Forbidden — API key missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad Request — required parameter missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    RealtimeStart:
      name: realtime_start
      in: query
      required: false
      description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
      schema:
        type: string
        format: date
      example: '2026-05-28'
    Offset:
      name: offset
      in: query
      required: false
      description: Non-negative integer offset into the result set for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
      example: 0
    SortOrder:
      name: sort_order
      in: query
      required: false
      description: Sort order. asc (ascending, default) or desc (descending).
      schema:
        type: string
        enum:
        - asc
        - desc
        default: asc
      example: asc
    OrderByTags:
      name: order_by
      in: query
      required: false
      description: Field to order tag results by.
      schema:
        type: string
        enum:
        - series_count
        - popularity
        - created
        - name
        - group_id
        default: series_count
      example: series_count
    SearchText:
      name: search_text
      in: query
      required: false
      description: Words to match against tag names and descriptions.
      schema:
        type: string
      example: monetary aggregates
    FileType:
      name: file_type
      in: query
      required: false
      description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
      schema:
        type: string
        enum:
        - xml
        - json
        - xlsx
        - csv
        - txt
        default: xml
      example: json
    FilterValue:
      name: filter_value
      in: query
      required: false
      description: Value of the filter_variable attribute to match.
      schema:
        type: string
      example: monthly
    RealtimeEnd:
      name: realtime_end
      in: query
      required: false
      description: End of the real-time period (YYYY-MM-DD). Defaults to today.
      schema:
        type: string
        format: date
      example: '2026-05-28'
    TagGroupId:
      name: tag_group_id
      in: query
      required: false
      description: Group identifier for tags — freq, gen, geo, geot, rls, seas, src.
      schema:
        type: string
        enum:
        - freq
        - gen
        - geo
        - geot
        - rls
        - seas
        - src
      example: freq
    OrderBySeries:
      name: order_by
      in: query
      required: false
      description: Field to order series results by.
      schema:
        type: string
        enum:
        - series_id
        - title
        - units
        - frequency
        - seasonal_adjustment
        - realtime_start
        - realtime_end
        - last_updated
        - observation_start
        - observation_end
        - popularity
        - group_popularity
      example: series_count
    Limit1000:
      name: limit
      in: query
      required: false
      description: Maximum number of results to return (1–1000).
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 1000
      example: 100
    ExcludeTagNames:
      name: exclude_tag_names
      in: query
      required: false
      description: Semicolon-separated list of tag names to exclude.
      schema:
        type: string
      example: discontinued
    FilterVariable:
      name: filter_variable
      in: query
      required: false
      description: Attribute to filter series results by.
      schema:
        type: string
        enum:
        - frequency
        - units
        - seasonal_adjustment
      example: frequency
    TagNames:
      name: tag_names
      in: query
      required: false
      description: Semicolon-separated list of tag names to require.
      schema:
        type: string
      example: monthly;usa
    ApiKey:
      name: api_key
      in: query
      required: true
      description: 32-character lower-case alphanumeric FRED API key.
      schema:
        type: string
        pattern: ^[0-9a-f]{32}$
      example: abcdef0123456789abcdef0123456789
  schemas:
    Tag:
      type: object
      description: A FRED tag.
      properties:
        name:
          type: string
          description: Lower-case tag name.
          example: Unemployment Rate
        group_id:
          type: string
          description: Tag group id (freq
          gen: null
          geo: null
          geot: null
          rls: null
          seas: null
          src).: null
          example: freq
        notes:
          type: string
          description: Editorial notes.
          example: Editorial notes.
        created:
          type: string
          description: ISO-8601 created timestamp.
          example: example
        popularity:
          type: integer
          description: Popularity score 0–100.
          example: 95
        series_count:
          type: integer
          description: Number of series carrying this tag.
          example: 380000
      required:
      - name
      - group_id
    CategoryList:
      type: object
      description: A list of FRED categories.
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/Category'
      required:
      - categories
    TagList:
      type: object
      description: A list of FRED tags.
      properties:
        realtime_start:
          type: string
          format: date
          example: '2026-05-28'
        realtime_end:
          type: string
          format: date
          example: '2026-05-28'
        order_by:
          type: string
          example: example
        sort_order:
          type: string
          example: example
        count:
          type: integer
          example: 1
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 1000
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
      required:
      - tags
    SeriesList:
      type: object
      description: A list of FRED series.
      properties:
        realtime_start:
          type: string
          format: date
          example: '2026-05-28'
        realtime_end:
          type: string
          format: date
          example: '2026-05-28'
        order_by:
          type: string
          example: example
        sort_order:
          type: string
          example: example
        count:
          type: integer
          example: 1
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 1000
        seriess:
          type: array
          description: Array of series (FRED uses the legacy "seriess" key intentionally).
          items:
            $ref: '#/components/schemas/Series'
      required:
      - seriess
    Category:
      type: object
      description: A FRED category node.
      properties:
        id:
          type: integer
          description: Numeric category ID.
          example: 1
        name:
          type: string
          description: Display name of the category.
          example: Unemployment Rate
        parent_id:
          type: integer
          description: Parent category ID.
          example: 0
        notes:
          type: string
          description: Optional editorial notes.
          example: Editorial notes.
      required:
      - id
      - name
      - parent_id
    ErrorResponse:
      type: object
      description: FRED error response.
      properties:
        error_code:
          type: integer
          description: Numeric error code returned by FRED.
          example: 400
        error_message:
          type: string
          description: Human-readable error message.
          example: example
      required:
      - error_code
      - error_message
    Series:
      type: object
      description: A FRED economic data series and its metadata.
      properties:
        id:
          type: string
          description: FRED series ID (e.g. UNRATE
          GNPCA).: null
          example: UNRATE
        realtime_start:
          type: string
          format: date
          example: '2026-05-28'
        realtime_end:
          type: string
          format: date
          example: '2026-05-28'
        title:
          type: string
          description: Display title of the series.
          example: Unemployment Rate
        observation_start:
          type: string
          format: date
          description: First available observation date.
          example: '2026-05-28'
        observation_end:
          type: string
          format: date
          description: Last available observation date.
          example: '2026-05-28'
        frequency:
          type: string
          description: Display frequency (e.g. "Monthly").
          example: Monthly
        frequency_short:
          type: string
          description: Frequency code (d
          w: null
          m: null
          q: null
          a).: null
          example: Monthly
        units:
          type: string
          description: Display unit string.
          example: Percent
        units_short:
          type: string
          description: Short unit string.
          example: Percent
        seasonal_adjustment:
          type: string
          description: Seasonal adjustment description.
          example: Seasonally Adjusted
        seasonal_adjustment_short:
          type: string
          description: Seasonal adjustment code (SA
          NSA: null
          SAAR: null
          NSAAR: null
          SSA).: null
          example: SA
        last_updated:
          type: string
          description: ISO-8601 timestamp of last update.
          example: '2026-05-02 07:46:10-05'
        popularity:
          type: integer
          description: Popularity score 0–100.
          example: 95
        group_popularity:
          type: integer
          description: Group popularity score 0–100.
          example: 95
        notes:
          type: string
          description: Editorial notes for the series.
          example: Editorial notes.
      required:
      - id
      - title
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
      description: 32-character lower-case alphanumeric FRED API key (same key used for the FRED API).