> ## Documentation Index
> Fetch the complete documentation index at: https://developers.openalex.org/llms.txt
> Use this file to discover all available pages before exploring further.

# List subfields

> Get a list of subfields (third-level topic categories). There are 254 subfields spread across 26 fields.



## OpenAPI

````yaml /api-reference/openapi.json get /subfields
openapi: 3.1.0
info:
  title: OpenAlex API
  description: >-
    The OpenAlex API provides access to a comprehensive catalog of scholarly
    works, authors, sources, institutions, topics, keywords, publishers, and
    funders. OpenAlex indexes over 250 million scholarly works.
  version: 1.0.0
  contact:
    name: OpenAlex Support
    email: support@openalex.org
    url: https://openalex.org
  license:
    name: CC0
    url: https://creativecommons.org/publicdomain/zero/1.0/
servers:
  - url: https://api.openalex.org
    description: OpenAlex Production API
security:
  - apiKey: []
tags:
  - name: Works
    description: Scholarly documents like journal articles, books, datasets, and theses
  - name: Authors
    description: People who create scholarly works
  - name: Sources
    description: Journals, repositories, and other venues where works are hosted
  - name: Institutions
    description: Universities, research organizations, and other affiliations
  - name: Topics
    description: Research topics automatically assigned to works
  - name: Keywords
    description: Short phrases identified from works' topics
  - name: Publishers
    description: Companies and organizations that publish scholarly works
  - name: Funders
    description: Organizations that fund research
  - name: Autocomplete
    description: Fast typeahead search for any entity type
  - name: Domains
    description: Top-level categories in the topic hierarchy (4 total)
  - name: Fields
    description: Second-level categories in the topic hierarchy (26 total)
  - name: Subfields
    description: Third-level categories in the topic hierarchy (254 total)
  - name: SDGs
    description: UN Sustainable Development Goals (17 total)
  - name: Countries
    description: Geographic countries for filtering research by location
  - name: Continents
    description: Geographic continents (7 total)
  - name: Languages
    description: Languages of scholarly works
  - name: Awards
    description: Research grants and funding awards
  - name: Concepts
    description: Legacy taxonomy of research areas (deprecated - use Topics instead)
  - name: Work Types
    description: Types of scholarly works (article, book, dataset, etc.)
  - name: Source Types
    description: Types of sources (journal, repository, conference, etc.)
  - name: Institution Types
    description: Types of institutions (education, healthcare, company, etc.)
  - name: Licenses
    description: Open access licenses (CC BY, CC BY-SA, etc.)
paths:
  /subfields:
    get:
      tags:
        - Subfields
      summary: List subfields
      description: >-
        Get a list of subfields (third-level topic categories). There are 254
        subfields spread across 26 fields.
      operationId: listSubfields
      parameters:
        - name: filter
          in: query
          description: >-
            Filter subfields. Examples: `field.id:17`, `domain.id:3`,
            `works_count:>100000` See [all Subfield
            fields](/api-reference/subfields#available-filter-sort-and-group_by-fields).
          schema:
            type: string
        - name: sort
          in: query
          description: >-
            Sort by: `works_count`, `cited_by_count`. Prefix with `-` for
            descending. See [all Subfield
            fields](/api-reference/subfields#available-filter-sort-and-group_by-fields).
          schema:
            type: string
        - name: group_by
          in: query
          description: >-
            Group by: `field.id`, `domain.id` See [all Subfield
            fields](/api-reference/subfields#available-filter-sort-and-group_by-fields).
          schema:
            type: string
        - $ref: '#/components/parameters/search'
        - $ref: '#/components/parameters/per_page'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/sample'
        - $ref: '#/components/parameters/select'
        - $ref: '#/components/parameters/api_key'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubfieldsListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    search:
      name: search
      in: query
      description: >-
        Full-text search across titles, abstracts, and other text fields.
        Example: `search=machine learning`
      schema:
        type: string
    per_page:
      name: per_page
      in: query
      description: Number of results per page (1-100, default 25)
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 25
    page:
      name: page
      in: query
      description: >-
        Page number for pagination. Use cursor for deep pagination beyond 10,000
        results.
      schema:
        type: integer
        minimum: 1
    cursor:
      name: cursor
      in: query
      description: >-
        Cursor for deep pagination. Use `cursor=*` to start, then use the
        `next_cursor` from the response.
      schema:
        type: string
    sample:
      name: sample
      in: query
      description: >-
        Return a random sample of N results (max 10,000). Cannot be used with
        sort or page.
      schema:
        type: integer
        maximum: 10000
    select:
      name: select
      in: query
      description: >-
        Comma-separated list of fields to return. Reduces response size.
        Example: `select=id,display_name,cited_by_count`
      schema:
        type: string
    api_key:
      name: api_key
      in: query
      description: >-
        Your OpenAlex API key (required). Get a free key at
        https://openalex.org/settings/api
      required: true
      schema:
        type: string
  schemas:
    SubfieldsListResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        results:
          type: array
          items:
            $ref: '#/components/schemas/Subfield'
    Meta:
      type: object
      description: Metadata about the query results
      properties:
        count:
          type: integer
          description: Total number of results matching the query
        db_response_time_ms:
          type: integer
          description: Database response time in milliseconds
        page:
          type: integer
          description: Current page number
        per_page:
          type: integer
          description: Number of results per page
        next_cursor:
          type: string
          description: Cursor for the next page (when using cursor pagination)
        groups_count:
          type: integer
          nullable: true
          description: Number of groups when using group_by
        cost_usd:
          type: number
          description: Cost of this request in USD
    Subfield:
      type: object
      description: Third-level category in the topic hierarchy (254 total)
      properties:
        id:
          type: string
          example: https://openalex.org/subfields/1702
          description: The OpenAlex ID for this subfield.
        display_name:
          type: string
          description: The English-language label of the subfield.
        description:
          type: string
          description: A description of this subfield.
        display_name_alternatives:
          type: array
          items:
            type: string
          description: Alternate names for this subfield.
        field:
          type: object
          properties:
            id:
              type: string
            display_name:
              type: string
          description: The field containing this subfield (parent level).
        domain:
          type: object
          properties:
            id:
              type: string
            display_name:
              type: string
          description: The domain containing this subfield (top level of hierarchy).
        topics:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              display_name:
                type: string
          description: >-
            The topics within this subfield. Each object has `id` and
            `display_name`.
        siblings:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              display_name:
                type: string
          description: >-
            Other subfields at the same level (across all fields). Each object
            has `id` and `display_name`.
        ids:
          type: object
          properties:
            openalex:
              type: string
            wikidata:
              type: string
            wikipedia:
              type: string
          description: 'External identifiers:'
        works_count:
          type: integer
          description: The number of works tagged with topics in this subfield.
        cited_by_count:
          type: integer
          description: Total citations to works in this subfield.
        works_api_url:
          type: string
          description: A URL that returns all works tagged with this subfield.
        created_date:
          type: string
          format: date
          description: When this subfield was added to OpenAlex (ISO 8601 date).
        updated_date:
          type: string
          format: date-time
          description: When this subfield was last updated (ISO 8601 datetime).
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error type
        message:
          type: string
          description: Human-readable error message
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: api_key
      description: >-
        Your OpenAlex API key. Get a free key at
        https://openalex.org/settings/api

````