ARC Taxonomy API

Anonymous read access to the 34 controlled vocabularies ARC classifies its content with — states_counties (446 terms), investment_priority_topic (22), tax_year (70), global_type (31), the research, fact-sheet, event, staff and grant-resource vocabularies — plus the /wp/v2/types, /wp/v2/taxonomies and /wp/v2/statuses registries that describe the content model itself. ARC's content has no foreign keys; these terms are the join.

Operations 74

GET /wp/v2/categories GET /wp/v2/categories #
GET /wp/v2/categories/{id} GET /wp/v2/categories/{id} #
GET /wp/v2/tags GET /wp/v2/tags #
GET /wp/v2/tags/{id} GET /wp/v2/tags/{id} #
GET /wp/v2/global_type GET /wp/v2/global_type #
GET /wp/v2/global_type/{id} GET /wp/v2/global_type/{id} #
GET /wp/v2/tax_year GET /wp/v2/tax_year #
GET /wp/v2/tax_year/{id} GET /wp/v2/tax_year/{id} #
GET /wp/v2/states_counties GET /wp/v2/states_counties #
GET /wp/v2/states_counties/{id} GET /wp/v2/states_counties/{id} #
GET /wp/v2/investment_priority_topic GET /wp/v2/investment_priority_topic #
GET /wp/v2/investment_priority_topic/{id} GET /wp/v2/investment_priority_topic/{id} #
GET /wp/v2/newsroom_topic GET /wp/v2/newsroom_topic #
GET /wp/v2/newsroom_topic/{id} GET /wp/v2/newsroom_topic/{id} #
GET /wp/v2/newsroom_types GET /wp/v2/newsroom_types #
GET /wp/v2/newsroom_types/{id} GET /wp/v2/newsroom_types/{id} #
GET /wp/v2/office_inspector_general_type GET /wp/v2/office_inspector_general_type #
GET /wp/v2/office_inspector_general_type/{id} GET /wp/v2/office_inspector_general_type/{id} #
GET /wp/v2/operational_guidance_type GET /wp/v2/operational_guidance_type #
GET /wp/v2/operational_guidance_type/{id} GET /wp/v2/operational_guidance_type/{id} #
GET /wp/v2/map_topic GET /wp/v2/map_topic #
GET /wp/v2/map_topic/{id} GET /wp/v2/map_topic/{id} #
GET /wp/v2/research_eval_maps_data_type GET /wp/v2/research_eval_maps_data_type #
GET /wp/v2/research_eval_maps_data_type/{id} GET /wp/v2/research_eval_maps_data_type/{id} #
GET /wp/v2/research_report_eval_topic GET /wp/v2/research_report_eval_topic #
GET /wp/v2/research_report_eval_topic/{id} GET /wp/v2/research_report_eval_topic/{id} #
GET /wp/v2/fact_sheets_infographics_type GET /wp/v2/fact_sheets_infographics_type #
GET /wp/v2/fact_sheets_infographics_type/{id} GET /wp/v2/fact_sheets_infographics_type/{id} #
GET /wp/v2/fact_sheets_infographics_topic GET /wp/v2/fact_sheets_infographics_topic #
GET /wp/v2/fact_sheets_infographics_topic/{id} GET /wp/v2/fact_sheets_infographics_topic/{id} #
GET /wp/v2/event_type GET /wp/v2/event_type #
GET /wp/v2/event_type/{id} GET /wp/v2/event_type/{id} #
GET /wp/v2/event_topic GET /wp/v2/event_topic #
GET /wp/v2/event_topic/{id} GET /wp/v2/event_topic/{id} #
GET /wp/v2/event_host GET /wp/v2/event_host #
GET /wp/v2/event_host/{id} GET /wp/v2/event_host/{id} #
GET /wp/v2/month GET /wp/v2/month #
GET /wp/v2/month/{id} GET /wp/v2/month/{id} #
GET /wp/v2/staff_type GET /wp/v2/staff_type #
GET /wp/v2/staff_type/{id} GET /wp/v2/staff_type/{id} #
GET /wp/v2/staff_topic GET /wp/v2/staff_topic #
GET /wp/v2/staff_topic/{id} GET /wp/v2/staff_topic/{id} #
GET /wp/v2/state_partner_role GET /wp/v2/state_partner_role #
GET /wp/v2/state_partner_role/{id} GET /wp/v2/state_partner_role/{id} #
GET /wp/v2/state_resource_type GET /wp/v2/state_resource_type #
GET /wp/v2/state_resource_type/{id} GET /wp/v2/state_resource_type/{id} #
GET /wp/v2/grant_type GET /wp/v2/grant_type #
GET /wp/v2/grant_type/{id} GET /wp/v2/grant_type/{id} #
GET /wp/v2/funding_source GET /wp/v2/funding_source #
GET /wp/v2/funding_source/{id} GET /wp/v2/funding_source/{id} #
GET /wp/v2/grant_resources_funding_type GET /wp/v2/grant_resources_funding_type #
GET /wp/v2/grant_resources_funding_type/{id} GET /wp/v2/grant_resources_funding_type/{id} #
GET /wp/v2/grant_resources_resource_type GET /wp/v2/grant_resources_resource_type #
GET /wp/v2/grant_resources_resource_type/{id} GET /wp/v2/grant_resources_resource_type/{id} #
GET /wp/v2/grant_resources_funding_stage GET /wp/v2/grant_resources_funding_stage #
GET /wp/v2/grant_resources_funding_stage/{id} GET /wp/v2/grant_resources_funding_stage/{id} #
GET /wp/v2/applicant_resources_funding_op GET /wp/v2/applicant_resources_funding_op #
GET /wp/v2/applicant_resources_funding_op/{id} GET /wp/v2/applicant_resources_funding_op/{id} #
GET /wp/v2/applicant_resources_project_type GET /wp/v2/applicant_resources_project_type #
GET /wp/v2/applicant_resources_project_type/{id} GET /wp/v2/applicant_resources_project_type/{id} #
GET /wp/v2/applicant_resources_type GET /wp/v2/applicant_resources_type #
GET /wp/v2/applicant_resources_type/{id} GET /wp/v2/applicant_resources_type/{id} #
GET /wp/v2/grantee_resources_funding_op GET /wp/v2/grantee_resources_funding_op #
GET /wp/v2/grantee_resources_funding_op/{id} GET /wp/v2/grantee_resources_funding_op/{id} #
GET /wp/v2/grantee_resources_project_type GET /wp/v2/grantee_resources_project_type #
GET /wp/v2/grantee_resources_project_type/{id} GET /wp/v2/grantee_resources_project_type/{id} #
GET /wp/v2/grantee_resources_resource_type GET /wp/v2/grantee_resources_resource_type #
GET /wp/v2/grantee_resources_resource_type/{id} GET /wp/v2/grantee_resources_resource_type/{id} #
GET /wp/v2/types GET /wp/v2/types #
GET /wp/v2/types/{type} GET /wp/v2/types/{type} #
GET /wp/v2/taxonomies GET /wp/v2/taxonomies #
GET /wp/v2/taxonomies/{taxonomy} GET /wp/v2/taxonomies/{taxonomy} #
GET /wp/v2/statuses GET /wp/v2/statuses #
GET /wp/v2/statuses/{status} GET /wp/v2/statuses/{status} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/arc-taxonomy-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appalachian-regional-commission-taxonomy-api-openapi.yml Raw ↑
# method: derived
# x-source-url: https://www.arc.gov/wp-json/
# generated: '2026-09-07'
# Derived by the API Evangelist enrichment pipeline from the provider's own live
# discovery document. The Appalachian Regional Commission publishes no OpenAPI.
openapi: 3.1.0
info:
  title: ARC Taxonomy API (WordPress REST wp/v2)
  version: wp/v2
  summary: Anonymous read access to the controlled vocabularies ARC classifies its content with, plus the post-type
    and taxonomy registries.
  description: 'The Appalachian Regional Commission classifies everything on www.arc.gov with a large set of custom
    taxonomies, all readable anonymously: `states_counties` (446 terms naming the states and counties of the Appalachian Region), `investment_priority_topic`,
    `global_type` (31 terms), `tax_year` (70 terms), the research and fact-sheet topic vocabularies, the event type/topic/host
    vocabularies, the staff and state-partner role vocabularies, and the grant, grantee and applicant resource vocabularies.
    `/wp/v2/types`, `/wp/v2/taxonomies` and `/wp/v2/statuses` are the registries that describe the content model
    itself — call those first to discover which taxonomies apply to which post type.


    The `wp/v2` namespace at https://www.arc.gov/wp-json/ is readable anonymously — no key, no OAuth, no registration.
    Write methods are advertised on these same routes but reject anonymous callers (WordPress authenticates writes
    with Application Passwords over HTTP Basic), so only the GET surface is documented here.


    This document was DERIVED mechanically by API Evangelist from the route-discovery document served at https://www.arc.gov/wp-json/
    on 2026-09-07 — every path, method and query parameter below is taken verbatim from that descriptor, and each
    collection route was called live to confirm it answers 200 anonymously. The Appalachian Regional Commission
    does not publish an OpenAPI definition of its own; this is the content API its CMS exposes, not a product API.'
  contact:
    name: Appalachian Regional Commission
    url: https://www.arc.gov/contact-arc/
  license:
    name: U.S. Government Work
    url: https://www.arc.gov/arc-web-and-privacy-policy/
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-from: https://www.arc.gov/wp-json/
  x-derived-on: '2026-09-07'
  x-provider-published: false
servers:
- url: https://www.arc.gov/wp-json
  description: Production (arc.gov WordPress REST API)
tags:
- name: Taxonomy
paths:
  /wp/v2/categories:
    get:
      operationId: getCategories
      summary: GET /wp/v2/categories
      description: Read `/wp/v2/categories` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to hide terms not assigned to any posts.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
        description: Sort collection by term attribute.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific parent.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific post.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to terms with one or more specific slugs.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/categories/{id}:
    get:
      operationId: getCategoriesByid
      summary: GET /wp/v2/categories/{id}
      description: Read `/wp/v2/categories/{id}` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Unique identifier for the term.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/tags:
    get:
      operationId: getTags
      summary: GET /wp/v2/tags
      description: Read `/wp/v2/tags` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to hide terms not assigned to any posts.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
        description: Sort collection by term attribute.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific post.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to terms with one or more specific slugs.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/tags/{id}:
    get:
      operationId: getTagsByid
      summary: GET /wp/v2/tags/{id}
      description: Read `/wp/v2/tags/{id}` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Unique identifier for the term.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/global_type:
    get:
      operationId: getGlobalType
      summary: GET /wp/v2/global_type
      description: Read `/wp/v2/global_type` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to hide terms not assigned to any posts.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
        description: Sort collection by term attribute.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific parent.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific post.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to terms with one or more specific slugs.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/global_type/{id}:
    get:
      operationId: getGlobalTypeByid
      summary: GET /wp/v2/global_type/{id}
      description: Read `/wp/v2/global_type/{id}` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Unique identifier for the term.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/tax_year:
    get:
      operationId: getTaxYear
      summary: GET /wp/v2/tax_year
      description: Read `/wp/v2/tax_year` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to hide terms not assigned to any posts.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
        description: Sort collection by term attribute.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific parent.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific post.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to terms with one or more specific slugs.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/tax_year/{id}:
    get:
      operationId: getTaxYearByid
      summary: GET /wp/v2/tax_year/{id}
      description: Read `/wp/v2/tax_year/{id}` from the WordPress REST API at https://www.arc.gov/wp-json.
      tags:
      - Taxonomy
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
        description: Unique identifier for the term.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          content:
            application/json:
              schema: {}
        '400':
          description: Bad request — an invalid parameter was supplied. Body is the WordPress REST error envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '401':
          description: Unauthorized — the route requires an authenticated WordPress user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '403':
          description: Forbidden — the capability is disabled for anonymous callers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
        '404':
          description: Not found — no resource exists with the supplied identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestError'
  /wp/v2/states_counties:
    get:
      operationId: getStatesCounties
      summary: GET /wp/v2/states_counties
      description: List the states-and-counties vocabulary ARC tags content with across the 423-county, 13-state
        Appalachian Region.
      tags:
      - Taxonomy
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: hide_empty
        in: query
        required: false
        schema:
          type: boolean
          default: false
        description: Whether to hide terms not assigned to any posts.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - id
          - include
          - name
          - slug
          - include_slugs
          - term_group
          - description
          - count
          default: name
        description: Sort collection by term attribute.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: parent
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific parent.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: post
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to terms assigned to a specific post.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to terms with one or more specific slugs.
      responses:
        '200':
          description: Success. JSON body; collection routes also return `X-WP-Total` and `X-WP-TotalPages` headers.
          headers:
            X-WP-Total:
              description: Total number of records matching the query.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current `per_page`.
              schema:
                type: integer
          co

# --- truncated at 32 KB (240 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appalachian-regional-commission/refs/heads/main/openapi/appalachian-regional-commission-taxonomy-api-openapi.yml