> ## 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 Source Types

> Retrieve a paginated list of source types.

Retrieves a paginated list of source types.

### 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>

### Response Fields

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

  <Expandable title="meta attributes">
    <ResponseField name="count" type="integer">
      Total number of matching records.
    </ResponseField>

    <ResponseField name="page" type="integer">
      Current page number.
    </ResponseField>

    <ResponseField name="per_page" type="integer">
      Number of records returned per page.
    </ResponseField>
  </Expandable>
</ResponseField>

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

  <Expandable title="results item attributes">
    <ResponseField name="id" type="integer">
      Source type ID.
    </ResponseField>

    <ResponseField name="code" type="string">
      Source type code (e.g. `book series`, `journal`, `repository`).
    </ResponseField>

    <ResponseField name="name" type="string">
      Source type display name.
    </ResponseField>

    <ResponseField name="description" type="string">
      Description of the source type.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.hexagraph.in/references/source-types?page=1&per_page=25"
  ```

  ```javascript JavaScript theme={null}
  fetch("https://api.hexagraph.in/references/source-types?page=1&per_page=25")
    .then(response => response.json())
    .then(data => console.log(data));
  ```

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

  response = requests.get(
      "https://api.hexagraph.in/references/source-types",
      params={"page": 1, "per_page": 25}
  )

  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "meta": {
      "count": 6,
      "page": 1,
      "per_page": 25
    },
    "results": [
      {
        "id": 4,
        "code": "book series",
        "name": "book series",
        "description": "Numbered collections of scholarly books published under a shared series title."
      }
    ]
  }
  ```

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

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