FRED · Capability

FRED API — Categories

FRED API — Categories. 6 operations. Lead operation: FRED Get a Category. Self-contained Naftiko capability covering one FRED business surface.

Run with Naftiko FREDFREDCategories

What You Can Do

GET
Getcategory — FRED Get a Category
/v1/category
GET
Getcategorychildren — FRED Get the Child Categories for a Category
/v1/category/children
GET
Getcategoryrelated — FRED Get the Related Categories for a Category
/v1/category/related
GET
Getcategoryseries — FRED Get the Series in a Category
/v1/category/series
GET
Getcategorytags — FRED Get the Tags for a Category
/v1/category/tags
GET
Getcategoryrelatedtags — FRED Get the Related Tags for a Category
/v1/category/related-tags

MCP Tools

get-category

FRED Get a Category

read-only idempotent
get-child-categories-category

FRED Get the Child Categories for a Category

read-only idempotent
get-related-categories-category

FRED Get the Related Categories for a Category

read-only idempotent
get-series-category

FRED Get the Series in a Category

read-only idempotent
get-tags-category

FRED Get the Tags for a Category

read-only idempotent
get-related-tags-category

FRED Get the Related Tags for a Category

read-only idempotent

Capability Spec

fred-categories.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: FRED API — Categories
  description: 'FRED API — Categories. 6 operations. Lead operation: FRED Get a Category. Self-contained Naftiko capability covering one FRED business surface.'
  tags:
    - FRED
    - FRED
    - Categories
  created: '2026-05-28'
  modified: '2026-05-28'
binds:
  - namespace: env
    keys:
      FRED_API_KEY: FRED_API_KEY
capability:
  consumes:
    - type: http
      namespace: fred-categories
      baseUri: https://api.stlouisfed.org/fred
      description: FRED API — Categories business capability. Self-contained, no shared references.
      authentication:
        type: apikey
        key: api_key
        value: '{{env.FRED_API_KEY}}'
        placement: query
      resources:
        - name: category
          path: /category
          operations:
            - name: getCategory
              method: GET
              description: FRED Get a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: Numeric ID of the FRED category to retrieve.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: category-children
          path: /category/children
          operations:
            - name: getCategoryChildren
              method: GET
              description: FRED Get the Child Categories for a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: Parent category ID.
                - name: realtime_start
                  in: query
                  type: string
                  required: false
                  description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: realtime_end
                  in: query
                  type: string
                  required: false
                  description: End of the real-time period (YYYY-MM-DD). Defaults to today.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: category-related
          path: /category/related
          operations:
            - name: getCategoryRelated
              method: GET
              description: FRED Get the Related Categories for a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: The seed category ID.
                - name: realtime_start
                  in: query
                  type: string
                  required: false
                  description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: realtime_end
                  in: query
                  type: string
                  required: false
                  description: End of the real-time period (YYYY-MM-DD). Defaults to today.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: category-series
          path: /category/series
          operations:
            - name: getCategorySeries
              method: GET
              description: FRED Get the Series in a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: The category to enumerate.
                - name: realtime_start
                  in: query
                  type: string
                  required: false
                  description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: realtime_end
                  in: query
                  type: string
                  required: false
                  description: End of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Maximum number of results to return (1–1000).
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Non-negative integer offset into the result set for pagination.
                - name: order_by
                  in: query
                  type: string
                  required: false
                  description: Field to order series results by.
                - name: sort_order
                  in: query
                  type: string
                  required: false
                  description: Sort order. asc (ascending, default) or desc (descending).
                - name: filter_variable
                  in: query
                  type: string
                  required: false
                  description: Attribute to filter series results by.
                - name: filter_value
                  in: query
                  type: string
                  required: false
                  description: Value of the filter_variable attribute to match.
                - name: tag_names
                  in: query
                  type: string
                  required: false
                  description: Semicolon-separated list of tag names to require.
                - name: exclude_tag_names
                  in: query
                  type: string
                  required: false
                  description: Semicolon-separated list of tag names to exclude.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: category-tags
          path: /category/tags
          operations:
            - name: getCategoryTags
              method: GET
              description: FRED Get the Tags for a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: The category to list tags for.
                - name: realtime_start
                  in: query
                  type: string
                  required: false
                  description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: realtime_end
                  in: query
                  type: string
                  required: false
                  description: End of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: tag_names
                  in: query
                  type: string
                  required: false
                  description: Semicolon-separated list of tag names to require.
                - name: tag_group_id
                  in: query
                  type: string
                  required: false
                  description: Group identifier for tags — freq, gen, geo, geot, rls, seas, src.
                - name: search_text
                  in: query
                  type: string
                  required: false
                  description: Words to match against tag names and descriptions.
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Maximum number of results to return (1–1000).
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Non-negative integer offset into the result set for pagination.
                - name: order_by
                  in: query
                  type: string
                  required: false
                  description: Field to order tag results by.
                - name: sort_order
                  in: query
                  type: string
                  required: false
                  description: Sort order. asc (ascending, default) or desc (descending).
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: category-related-tags
          path: /category/related_tags
          operations:
            - name: getCategoryRelatedTags
              method: GET
              description: FRED Get the Related Tags for a Category
              inputParameters:
                - name: api_key
                  in: query
                  type: string
                  required: true
                  description: 32-character lower-case alphanumeric FRED API key.
                - name: file_type
                  in: query
                  type: string
                  required: false
                  description: Response format. xml (default) or json. The observations endpoint additionally accepts xlsx and csv.
                - name: category_id
                  in: query
                  type: integer
                  required: true
                  description: Seed category.
                - name: realtime_start
                  in: query
                  type: string
                  required: false
                  description: Start of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: realtime_end
                  in: query
                  type: string
                  required: false
                  description: End of the real-time period (YYYY-MM-DD). Defaults to today.
                - name: tag_names
                  in: query
                  type: string
                  required: false
                  description: Semicolon-separated list of tag names to require.
                - name: exclude_tag_names
                  in: query
                  type: string
                  required: false
                  description: Semicolon-separated list of tag names to exclude.
                - name: tag_group_id
                  in: query
                  type: string
                  required: false
                  description: Group identifier for tags — freq, gen, geo, geot, rls, seas, src.
                - name: search_text
                  in: query
                  type: string
                  required: false
                  description: Words to match against tag names and descriptions.
                - name: limit
                  in: query
                  type: integer
                  required: false
                  description: Maximum number of results to return (1–1000).
                - name: offset
                  in: query
                  type: integer
                  required: false
                  description: Non-negative integer offset into the result set for pagination.
                - name: order_by
                  in: query
                  type: string
                  required: false
                  description: Field to order tag results by.
                - name: sort_order
                  in: query
                  type: string
                  required: false
                  description: Sort order. asc (ascending, default) or desc (descending).
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
  exposes:
    - type: rest
      namespace: fred-categories-rest
      port: 8080
      description: REST adapter for FRED API — Categories. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/category
          name: category
          description: REST surface for /category.
          operations:
            - method: GET
              name: getCategory
              description: FRED Get a Category
              call: fred-categories.getCategory
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/category/children
          name: category-children
          description: REST surface for /category/children.
          operations:
            - method: GET
              name: getCategoryChildren
              description: FRED Get the Child Categories for a Category
              call: fred-categories.getCategoryChildren
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
                realtime_start: rest.realtime_start
                realtime_end: rest.realtime_end
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/category/related
          name: category-related
          description: REST surface for /category/related.
          operations:
            - method: GET
              name: getCategoryRelated
              description: FRED Get the Related Categories for a Category
              call: fred-categories.getCategoryRelated
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
                realtime_start: rest.realtime_start
                realtime_end: rest.realtime_end
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/category/series
          name: category-series
          description: REST surface for /category/series.
          operations:
            - method: GET
              name: getCategorySeries
              description: FRED Get the Series in a Category
              call: fred-categories.getCategorySeries
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
                realtime_start: rest.realtime_start
                realtime_end: rest.realtime_end
                limit: rest.limit
                offset: rest.offset
                order_by: rest.order_by
                sort_order: rest.sort_order
                filter_variable: rest.filter_variable
                filter_value: rest.filter_value
                tag_names: rest.tag_names
                exclude_tag_names: rest.exclude_tag_names
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/category/tags
          name: category-tags
          description: REST surface for /category/tags.
          operations:
            - method: GET
              name: getCategoryTags
              description: FRED Get the Tags for a Category
              call: fred-categories.getCategoryTags
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
                realtime_start: rest.realtime_start
                realtime_end: rest.realtime_end
                tag_names: rest.tag_names
                tag_group_id: rest.tag_group_id
                search_text: rest.search_text
                limit: rest.limit
                offset: rest.offset
                order_by: rest.order_by
                sort_order: rest.sort_order
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/category/related-tags
          name: category-related-tags
          description: REST surface for /category/related_tags.
          operations:
            - method: GET
              name: getCategoryRelatedTags
              description: FRED Get the Related Tags for a Category
              call: fred-categories.getCategoryRelatedTags
              with:
                api_key: rest.api_key
                file_type: rest.file_type
                category_id: rest.category_id
                realtime_start: rest.realtime_start
                realtime_end: rest.realtime_end
                tag_names: rest.tag_names
                exclude_tag_names: rest.exclude_tag_names
                tag_group_id: rest.tag_group_id
                search_text: rest.search_text
                limit: rest.limit
                offset: rest.offset
                order_by: rest.order_by
                sort_order: rest.sort_order
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: fred-categories-mcp
      port: 9090
      transport: http
      description: MCP adapter for FRED API — Categories. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: get-category
          description: FRED Get a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategory
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
          outputParameters:
            - type: object
              mapping: $.
        - name: get-child-categories-category
          description: FRED Get the Child Categories for a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategoryChildren
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
            realtime_start: tools.realtime_start
            realtime_end: tools.realtime_end
          outputParameters:
            - type: object
              mapping: $.
        - name: get-related-categories-category
          description: FRED Get the Related Categories for a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategoryRelated
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
            realtime_start: tools.realtime_start
            realtime_end: tools.realtime_end
          outputParameters:
            - type: object
              mapping: $.
        - name: get-series-category
          description: FRED Get the Series in a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategorySeries
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
            realtime_start: tools.realtime_start
            realtime_end: tools.realtime_end
            limit: tools.limit
            offset: tools.offset
            order_by: tools.order_by
            sort_order: tools.sort_order
            filter_variable: tools.filter_variable
            filter_value: tools.filter_value
            tag_names: tools.tag_names
            exclude_tag_names: tools.exclude_tag_names
          outputParameters:
            - type: object
              mapping: $.
        - name: get-tags-category
          description: FRED Get the Tags for a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategoryTags
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
            realtime_start: tools.realtime_start
            realtime_end: tools.realtime_end
            tag_names: tools.tag_names
            tag_group_id: tools.tag_group_id
            search_text: tools.search_text
            limit: tools.limit
            offset: tools.offset
            order_by: tools.order_by
            sort_order: tools.sort_order
          outputParameters:
            - type: object
              mapping: $.
        - name: get-related-tags-category
          description: FRED Get the Related Tags for a Category
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: fred-categories.getCategoryRelatedTags
          with:
            api_key: tools.api_key
            file_type: tools.file_type
            category_id: tools.category_id
            realtime_start: tools.realtime_start
            realtime_end: tools.realtime_end
            tag_names: tools.tag_names
            exclude_tag_names: tools.exclude_tag_names
            tag_group_id: tools.tag_group_id
            search_text: tools.search_text
            limit: tools.limit
            offset: tools.offset
            order_by: tools.order_by
            sort_order: tools.sort_order
          outputParameters:
            - type: object
              mapping: $.