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

# Export sources

> Export the sources in your installation, one row per source.

Requires the `SOURCES_READ` permission.

| Column | Description |
| :--- | :--- |
| `ID` | Source identifier. |
| `Name` | Display name. |
| `Namespace` | Namespace the source belongs to. |
| `Owner` | Email of the source owner, if set. |
| `Tags` | Comma-separated list of tag labels applied. |
| `Credential type` | The credential type the source uses to connect. |
| `Validator count` | Number of validators currently bound to the source. |
| `Created at` | ISO-8601 timestamp. |



## OpenAPI

````yaml /schemas/csv-export-11.1.json get /sources
openapi: 3.1.0
info:
  title: Validio CSV Export API
  version: 1.0.0
  description: >-
    Export Validio data as CSV over REST. Every endpoint is a `GET` that returns
    `text/csv`. Responses are capped at 100,000 rows. See the [CSV Export API
    overview](/v11.1/developer/validio-api/csv-export-api).
servers:
  - url: https://{instance}/api/export/v1
    description: Your Validio installation
    variables:
      instance:
        default: your-validio-instance
        description: The host you sign in to Validio with.
security:
  - apiKey: []
paths:
  /sources:
    get:
      summary: Export sources
      description: >-
        Export the sources in your installation, one row per source.


        Requires the `SOURCES_READ` permission.


        | Column | Description |

        | :--- | :--- |

        | `ID` | Source identifier. |

        | `Name` | Display name. |

        | `Namespace` | Namespace the source belongs to. |

        | `Owner` | Email of the source owner, if set. |

        | `Tags` | Comma-separated list of tag labels applied. |

        | `Credential type` | The credential type the source uses to connect. |

        | `Validator count` | Number of validators currently bound to the
        source. |

        | `Created at` | ISO-8601 timestamp. |
      operationId: exportSources
      parameters:
        - $ref: '#/components/parameters/filter'
        - $ref: '#/components/parameters/sort'
      responses:
        '200':
          $ref: '#/components/responses/CsvExport'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  parameters:
    filter:
      name: filter
      in: query
      required: false
      description: >-
        A URL-encoded JSON object narrowing which rows to export. Fields use the
        same shapes as the equivalent filter inputs in the Validio UI. Send it
        as a JSON string, not as nested query parameters.
      schema:
        type: string
      example: >-
        {"namespace":["production"],"range":{"start":"2026-03-01T00:00:00Z","end":"2026-04-01T00:00:00Z"}}
    sort:
      name: sort
      in: query
      required: false
      description: >-
        A URL-encoded JSON object controlling row order, using the same field
        shapes as the sort inputs in the Validio UI. Send it as a JSON string,
        not as nested query parameters.
      schema:
        type: string
  responses:
    CsvExport:
      description: >-
        A CSV export with a header row, capped at 100,000 rows. The
        `Content-Disposition` header carries a generated filename built from the
        resource, an optional entity name, and the time range (or today's date
        if the request has no time bounds).
      headers:
        Content-Disposition:
          description: >-
            Attachment header carrying the generated filename, for example
            `incident-groups-2026-03-01_2026-04-01.csv`.
          schema:
            type: string
      content:
        text/csv:
          schema:
            type: string
    BadRequest:
      description: >-
        A required parameter is missing, or a JSON parameter (`filter`, `sort`,
        `ids`, or `termIds`) is not valid. The body is a JSON object with an
        `error` message.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
    Unauthorized:
      description: The `Authorization` header is missing, or the key pair is not valid.
    Forbidden:
      description: >-
        The API key is valid but lacks the permissions this endpoint requires.
        The body is `{"error": "Insufficient permissions"}`.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your API key's access key and access secret, colon-delimited:
        `<access-key>:<access-secret>`. The same header as the GraphQL API; see
        [Authentication](/v11.1/developer/getting-started/authentication).

````