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

> Retrieve a paginated list of open access licenses.

Retrieves a paginated list of licenses.

### 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 license records.

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

    <ResponseField name="code" type="string">
      License identifier code (e.g., `apache-2-0`).
    </ResponseField>

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

    <ResponseField name="url" type="string">
      Official license documentation URL.
    </ResponseField>

    <ResponseField name="description" type="string">
      Brief summary of license permissions and requirements.
    </ResponseField>

    <ResponseField name="outputs_count" type="integer">
      Total research outputs count using this license.
    </ResponseField>

    <ResponseField name="cited_by_count" type="integer">
      Total citations count.
    </ResponseField>

    <ResponseField name="created_date" type="string">
      Creation timestamp.
    </ResponseField>

    <ResponseField name="updated_date" type="string">
      Last updated timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>

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

  ```javascript JavaScript theme={null}
  fetch("https://api.hexagraph.in/references/licenses?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/licenses",
      params={"page": 1, "per_page": 25}
  )

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

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "meta": {
      "count": 14,
      "page": 1,
      "per_page": 25
    },
    "results": [
      {
        "id": 11,
        "code": "apache-2-0",
        "name": "Apache License 2.0",
        "url": "https://spdx.org/licenses/Apache-2.0.html",
        "description": "A permissive license requiring copyright notices and providing patent rights.",
        "outputs_count": null,
        "cited_by_count": null,
        "created_date": "2024-04-12T17:15:12.000Z",
        "updated_date": "2024-04-12T17:15:17.000Z"
      }
    ]
  }
  ```

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