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

> Query and list publication venues with filtering, sorting, and pagination.

Retrieves a paginated list of publication sources 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="filter" type="string">
  Filter expression (e.g. `type:journal`, `is_oa:true`).
</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 source records.

  <Expandable title="results item attributes">
    <ResponseField name="id" type="string">Source ID (`HX_S...`).</ResponseField>
    <ResponseField name="issn_l" type="string">Linking ISSN.</ResponseField>
    <ResponseField name="issn" type="array">List of ISSN strings.</ResponseField>
    <ResponseField name="name" type="string">Source display name.</ResponseField>
    <ResponseField name="host_organization_name" type="string">Host organization name.</ResponseField>
    <ResponseField name="outputs_count" type="integer">Outputs count.</ResponseField>
    <ResponseField name="oa_outputs_count" type="integer">Open Access outputs count.</ResponseField>
    <ResponseField name="cited_by_count" type="integer">Citations count.</ResponseField>

    <ResponseField name="summary_stats" type="object">
      Summary statistics object.

      <Expandable title="summary_stats attributes">
        <ResponseField name="2yr_mean_citedness" type="number">Two-year mean citation rate.</ResponseField>
        <ResponseField name="h_index" type="integer">Calculated h-index score.</ResponseField>
        <ResponseField name="i10_index" type="integer">Calculated i10-index score.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="is_oa" type="boolean">`true` if Open Access.</ResponseField>
    <ResponseField name="is_in_doaj" type="boolean">`true` if in DOAJ.</ResponseField>
    <ResponseField name="is_in_doaj_since_year" type="integer">Year indexed in DOAJ.</ResponseField>
    <ResponseField name="is_high_oa_rate" type="boolean">`true` if high OA rate.</ResponseField>
    <ResponseField name="is_high_oa_rate_since_year" type="integer">Year high OA rate started.</ResponseField>
    <ResponseField name="is_in_scielo" type="boolean">`true` if in SciELO.</ResponseField>
    <ResponseField name="is_ojs" type="boolean">`true` if using OJS.</ResponseField>
    <ResponseField name="is_preprint_repository" type="boolean">`true` if preprint repository.</ResponseField>
    <ResponseField name="is_core" type="boolean">`true` if core journal.</ResponseField>
    <ResponseField name="oa_flip_year" type="integer">Year source flipped to OA.</ResponseField>
    <ResponseField name="first_publication_year" type="integer">First publication year.</ResponseField>
    <ResponseField name="last_publication_year" type="integer">Last publication year.</ResponseField>
    <ResponseField name="homepage_url" type="string">Homepage URL.</ResponseField>
    <ResponseField name="apc_prices" type="array">APC pricing array.</ResponseField>
    <ResponseField name="apc_usd" type="integer">APC price in USD.</ResponseField>
    <ResponseField name="apc_usd_by_year" type="object">APC USD breakdown by year.</ResponseField>
    <ResponseField name="country" type="object">Country metadata object (`{ code, name }`).</ResponseField>
    <ResponseField name="societies" type="array">Affiliated societies array.</ResponseField>
    <ResponseField name="alternate_titles" type="array">Alternate title strings array.</ResponseField>
    <ResponseField name="type" type="string">Source type (`journal`, `repository`, etc.).</ResponseField>

    <ResponseField name="counts_by_year" type="array">
      Yearly outputs and citations breakdown.

      <Expandable title="counts_by_year attributes">
        <ResponseField name="year" type="integer">Year number.</ResponseField>
        <ResponseField name="outputs_count" type="integer">Outputs count in year.</ResponseField>
        <ResponseField name="oa_outputs_count" type="integer">Open Access outputs count in year.</ResponseField>
        <ResponseField name="cited_by_count" type="integer">Citations count in year.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="updated_date" type="string">ISO updated date string.</ResponseField>
    <ResponseField name="created_date" type="string">ISO creation date string.</ResponseField>

    <ResponseField name="topics" type="array">
      Topics list array.

      <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>
  </Expandable>
</ResponseField>

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

  ```javascript JavaScript theme={null}
  fetch("https://api.hexagraph.in/sources?filter=type:repository&sort=outputs_count:desc&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/sources", params={"filter": "type:repository", "sort": "outputs_count:desc", "per_page": 25})
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "meta": {
      "count": 255083,
      "page": 1,
      "per_page": 25
    },
    "results": [
      {
        "id": "HX_S7407052672",
        "issn_l": null,
        "issn": null,
        "name": "NIFS",
        "host_organization_name": null,
        "outputs_count": 40589702,
        "oa_outputs_count": 40589702,
        "cited_by_count": 1,
        "summary_stats": {
          "2yr_mean_citedness": 2.463679087863222e-8,
          "h_index": 1,
          "i10_index": 0
        },
        "is_oa": false,
        "is_in_doaj": false,
        "is_in_doaj_since_year": null,
        "is_high_oa_rate": false,
        "is_high_oa_rate_since_year": null,
        "is_in_scielo": false,
        "is_ojs": false,
        "is_preprint_repository": false,
        "is_core": false,
        "oa_flip_year": null,
        "first_publication_year": 2024,
        "last_publication_year": 2026,
        "homepage_url": null,
        "apc_prices": null,
        "apc_usd": null,
        "apc_usd_by_year": null,
        "country": null,
        "societies": [],
        "alternate_titles": [],
        "type": "repository",
        "counts_by_year": [
          {
            "year": 2026,
            "outputs_count": 11649566,
            "oa_outputs_count": 11649566,
            "cited_by_count": 0
          },
          {
            "year": 2025,
            "outputs_count": 18939996,
            "oa_outputs_count": 18939996,
            "cited_by_count": 1
          },
          {
            "year": 2024,
            "outputs_count": 10000140,
            "oa_outputs_count": 10000140,
            "cited_by_count": 0
          }
        ],
        "updated_date": "2026-07-28T14:16:12",
        "created_date": "2025-10-10T00:00:00",
        "topics": [
          {
            "id": "HX_T12157",
            "name": "Geochemistry and Geologic Mapping"
          },
          {
            "id": "HX_T13067",
            "name": "Geological Modeling and Analysis"
          },
          {
            "id": "HX_T10346",
            "name": "Magnetic confinement fusion research"
          }
        ]
      }
    ]
  }
  ```

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