> ## Documentation Index
> Fetch the complete documentation index at: https://hexagraph-docs.voyla.in/llms.txt
> Use this file to discover all available pages before exploring further.

# List subfields

> Query and list research subfields with filtering, sorting, and pagination.

Retrieves a paginated list of research subfields with filtering and sorting capabilities.

### Query Parameters

<ParamField query="page" default="1" type="integer">
  Page number for pagination. Default is `1`.
</ParamField>

<ParamField query="per_page" default="25" type="integer">
  Results per page. Allowed values: `10`, `25`, `50`, `100`.
</ParamField>

<ParamField query="sort" type="string">
  Sorting parameter (e.g. `outputs_count:desc`, `cited_by_count:desc`).
</ParamField>

### Response Fields

<ResponseField name="meta" type="object" required>
  Pagination metadata.

  <Expandable title="meta attributes">
    <ResponseField name="count" type="integer">Total matching records count.</ResponseField>
    <ResponseField name="page" type="integer">Current page number.</ResponseField>
    <ResponseField name="per_page" type="integer">Items per page.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="results" type="array" required>
  Array of subfield records.

  <Expandable title="results item attributes">
    <ResponseField name="id" type="integer">Subfield numeric ID.</ResponseField>
    <ResponseField name="name" type="string">Subfield display name.</ResponseField>
    <ResponseField name="description" type="string">Scope description.</ResponseField>

    <ResponseField name="ids" type="object">
      External identifiers.

      <Expandable title="ids attributes">
        <ResponseField name="wikidata" type="string">Wikidata URL.</ResponseField>
        <ResponseField name="wikipedia" type="string">Wikipedia URL.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="display_name_alternatives" type="array">Alternative display names or abbreviations.</ResponseField>

    <ResponseField name="field" type="object">
      Parent field.

      <Expandable title="field attributes">
        <ResponseField name="id" type="string">Field numeric ID.</ResponseField>
        <ResponseField name="name" type="string">Field display name.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="domain" type="object">
      Parent domain.

      <Expandable title="domain attributes">
        <ResponseField name="id" type="string">Domain numeric ID.</ResponseField>
        <ResponseField name="name" type="string">Domain display name.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="topics" type="array">
      Child topic clusters.

      <Expandable title="topics attributes">
        <ResponseField name="id" type="string">Topic ID (`HX_T...`).</ResponseField>
        <ResponseField name="name" type="string">Topic display name.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="siblings" type="array">
      Sibling subfields.

      <Expandable title="siblings attributes">
        <ResponseField name="id" type="integer">Sibling subfield numeric ID.</ResponseField>
        <ResponseField name="name" type="string">Sibling subfield display name.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="outputs_count" type="integer">Outputs count.</ResponseField>
    <ResponseField name="cited_by_count" type="integer">Citations count.</ResponseField>
    <ResponseField name="updated_date" type="string">Last updated timestamp.</ResponseField>
    <ResponseField name="created_date" type="string">Creation timestamp.</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.hexagraph.in/subfields?sort=outputs_count:desc&per_page=10"
  ```

  ```javascript JavaScript theme={null}
  fetch("https://api.hexagraph.in/subfields?sort=outputs_count:desc&per_page=10")
    .then(response => response.json())
    .then(data => console.log(data));
  ```

  ```python Python theme={null}
  import requests

  response = requests.get("https://api.hexagraph.in/subfields", params={"sort": "outputs_count:desc", "per_page": 10})
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "meta": {
      "count": 252,
      "page": 1,
      "per_page": 25
    },
    "results": [
      {
        "id": 2202,
        "name": "Aerospace Engineering",
        "description": "branch of engineering",
        "ids": {
          "wikidata": "http://www.wikidata.org/entity/Q3798668",
          "wikipedia": "https://en.wikipedia.org/wiki/Aerospace_Engineering"
        },
        "display_name_alternatives": [
          "aeronautical engineering"
        ],
        "field": {
          "id": "22",
          "name": "Engineering"
        },
        "domain": {
          "id": "3",
          "name": "Physical Sciences"
        },
        "siblings": [
          {
            "id": 1100,
            "name": "General Agricultural and Biological Sciences"
          },
        ],
        "topics": [
          {
            "id": "HX_T10069",
            "name": "Antenna Design and Analysis"
          },
        ],
        "outputs_count": 27363527,
        "cited_by_count": 17591690,
        "updated_date": "2026-08-05T03:01:40",
        "created_date": "2024-01-23T15:19:48"
      }
    ]
  }
  ```

  ```json 400 Bad Request theme={null}
  {
    "statusCode": 400,
    "message": "Bad Request - Invalid query parameters",
    "error": "Bad Request"
  }
  ```

  ```json 429 Rate Limit Exceeded theme={null}
  {
    "statusCode": 429,
    "message": "Rate limit exceeded. Maximum 30 requests per minute.",
    "error": "Too Many Requests"
  }
  ```
</ResponseExample>
