Sequenzy Data Exports API

Stream events and subscriber snapshots to your S3 or GCS bucket

Operations 8

GET /data-exports List data exports #
POST /data-exports Create data export #
GET /data-exports/{id} Get data export #
PATCH /data-exports/{id} Update data export #
DELETE /data-exports/{id} Delete data export #
POST /data-exports/{id}/test Test data export connection #
POST /data-exports/{id}/run Run data export now #
GET /data-exports/{id}/runs List data export runs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sequenzy:sequenzy-data-exports-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sequenzy-data-exports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sequenzy Data Exports API
  description: Sequenzy API for managing subscribers, tags, events, sequences, and transactional emails
  version: 1.0.0
servers:
- url: https://api.sequenzy.com/api/v1
  description: Production server
- url: https://api.sequenzy.com/v1
  description: Legacy production server alias
security:
- bearerAuth: []
tags:
- name: Data Exports
  description: Stream events and subscriber snapshots to your S3 or GCS bucket
paths:
  /data-exports:
    get:
      summary: List data exports
      description: Lists data export destinations with status, per-dataset progress and the last error. Credentials are never returned. Requires the data_exports:read scope.
      operationId: listDataExports
      tags:
      - Data Exports
      responses:
        '200':
          description: Data exports returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  dataExports:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataExport'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing scope, or the member role cannot manage workspace settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          $ref: '#/components/responses/TransientDatabaseUnavailable'
    post:
      summary: Create data export
      description: Adds an S3, Google Cloud Storage or S3-compatible bucket as a data export destination. Sequenzy first writes a small test file under the path prefix; the request fails with 400 when that write fails. The first export starts immediately and later exports follow the frequency. Requires data_exports:write, subscribers:read and analytics:read.
      operationId: createDataExport
      tags:
      - Data Exports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                provider:
                  type: string
                  enum:
                  - s3
                  - gcs
                  description: s3 for Amazon S3 or any S3-compatible service; gcs for Google Cloud Storage (HMAC keys).
                bucket:
                  type: string
                  description: Bucket name, not a URL.
                region:
                  type:
                  - string
                  - 'null'
                  description: Bucket region. Required for Amazon S3 without a custom endpoint; defaults to auto otherwise.
                endpoint:
                  type:
                  - string
                  - 'null'
                  description: HTTPS origin of an S3-compatible service (R2, MinIO, Backblaze). Must resolve to a public address. Not allowed for gcs.
                pathPrefix:
                  type:
                  - string
                  - 'null'
                  description: Folder inside the bucket. Leading and trailing slashes are removed.
                accessKeyId:
                  type: string
                  description: Access key ID (GCS HMAC access ID).
                secretAccessKey:
                  type: string
                  description: Secret access key. Stored encrypted and never returned.
                datasets:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                    - email_events
                    - sms_events
                    - custom_events
                    - subscribers
                  default:
                  - email_events
                  - custom_events
                  - subscribers
                frequency:
                  type: string
                  enum:
                  - every_5_minutes
                  - every_15_minutes
                  - hourly
                  - daily
                  default: every_15_minutes
                startFrom:
                  type:
                  - string
                  - 'null'
                  format: date-time
                  description: Include events recorded since this time, at most 30 days ago. Defaults to now.
              required:
              - name
              - provider
              - bucket
              - accessKeyId
              - secretAccessKey
      responses:
        '201':
          description: Data export created and first run queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  dataExport:
                    $ref: '#/components/schemas/DataExport'
        '400':
          description: 'Validation error (code invalid_input) or the test write failed (code connection_failed, with the reason: missing bucket, access denied, wrong region, unknown key or unsafe endpoint)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing scope, or the member role cannot manage workspace settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Request body does not match the schema (for example an unknown dataset)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /data-exports/{id}:
    get:
      summary: Get data export
      description: Returns one data export with status and per-dataset progress.
      operationId: getDataExport
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Data export returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  dataExport:
                    $ref: '#/components/schemas/DataExport'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      summary: Update data export
      description: Renames, changes datasets or frequency, pauses or resumes, moves the destination, or rotates credentials. Location and credential changes are verified with a test write first. Newly added event datasets start from the time of the change. Changing the bucket or prefix continues from the current progress in the new location.
      operationId: updateDataExport
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  maxLength: 255
                bucket:
                  type: string
                region:
                  type:
                  - string
                  - 'null'
                endpoint:
                  type:
                  - string
                  - 'null'
                  description: Send null or an empty string to clear a custom endpoint.
                pathPrefix:
                  type:
                  - string
                  - 'null'
                accessKeyId:
                  type: string
                  description: Must be sent together with secretAccessKey.
                secretAccessKey:
                  type: string
                  description: Must be sent together with accessKeyId.
                datasets:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                    - email_events
                    - sms_events
                    - custom_events
                    - subscribers
                frequency:
                  type: string
                  enum:
                  - every_5_minutes
                  - every_15_minutes
                  - hourly
                  - daily
                isEnabled:
                  type: boolean
                  description: false pauses the export, true resumes it.
      responses:
        '200':
          description: Data export updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  dataExport:
                    $ref: '#/components/schemas/DataExport'
        '400':
          description: Validation error or the test write failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      summary: Delete data export
      description: Stops exporting to the destination and deletes its run history. Files already written stay in the bucket.
      operationId: deleteDataExport
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Data export deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  dataExportId:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /data-exports/{id}/test:
    post:
      summary: Test data export connection
      description: Writes a small test file with the stored credentials.
      operationId: testDataExport
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Test file written
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  testedAt:
                    type: string
                    format: date-time
        '400':
          description: The test write failed (code connection_failed)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /data-exports/{id}/run:
    post:
      summary: Run data export now
      description: Queues an export immediately instead of waiting for the schedule. If a run is already queued or running, no second run starts.
      operationId: runDataExport
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Export queued
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  queued:
                    type: boolean
                    example: true
                  dataExport:
                    $ref: '#/components/schemas/DataExport'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The data export is paused (code destination_disabled)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /data-exports/{id}/runs:
    get:
      summary: List data export runs
      description: Lists recent runs from the last 14 days, newest first.
      operationId: listDataExportRuns
      tags:
      - Data Exports
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
      responses:
        '200':
          description: Runs returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  runs:
                    type: array
                    items:
                      $ref: '#/components/schemas/DataExportRun'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Data export not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  headers:
    RetryAfter:
      description: Number of seconds to wait before retrying the request.
      schema:
        type: integer
        minimum: 1
        example: 1
  responses:
    TransientDatabaseUnavailable:
      description: The database was temporarily unavailable. The request may be retried after the delay in Retry-After.
      headers:
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            success: false
            error: The service could not reach its database for a moment. Retry the request.
            code: SERVICE_UNAVAILABLE
  schemas:
    DataExport:
      type: object
      description: A bucket that Sequenzy streams workspace data to as gzipped JSON lines.
      properties:
        id:
          type: string
        name:
          type: string
        provider:
          type: string
          enum:
          - s3
          - gcs
        bucket:
          type: string
        region:
          type: string
        endpoint:
          type:
          - string
          - 'null'
        pathPrefix:
          type: string
        accessKeyId:
          type: string
          description: Masked access key ID, for example AKIA…WXYZ. The secret is never returned.
        datasets:
          type: array
          items:
            type: string
            enum:
            - email_events
            - sms_events
            - custom_events
            - subscribers
        frequency:
          type: string
          enum:
          - every_5_minutes
          - every_15_minutes
          - hourly
          - daily
        isEnabled:
          type: boolean
        status:
          type: string
          enum:
          - idle
          - queued
          - running
          - failed
          description: failed means the last run failed; it retries automatically with backoff.
        startFrom:
          type: string
          format: date-time
        exportedThrough:
          type: object
          description: 'Per dataset. Event datasets: everything recorded up to this timestamp has been written. subscribers: date of the last complete snapshot. null until the first export of that dataset.'
          additionalProperties:
            type:
            - string
            - 'null'
        nextRunAt:
          type:
          - string
          - 'null'
          format: date-time
        lastRunAt:
          type:
          - string
          - 'null'
          format: date-time
        lastSuccessAt:
          type:
          - string
          - 'null'
          format: date-time
        lastError:
          type:
          - string
          - 'null'
        lastErrorAt:
          type:
          - string
          - 'null'
          format: date-time
        consecutiveFailures:
          type: integer
        totalRowsExported:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Error message
        code:
          type: string
          description: Optional stable machine-readable error discriminator when available.
          example: COMPANY_CREATE_REQUIRES_PERSONAL_KEY
        retryable:
          type: boolean
          description: Whether retrying the request can recover from the error.
        issues:
          type: array
          description: Field-level problems with the request, when the endpoint reports them. Up to ten entries; `error` summarizes the first three.
          items:
            $ref: '#/components/schemas/InputIssue'
      required:
      - error
    InputIssue:
      type: object
      properties:
        path:
          type: string
          description: Dotted field path, such as `audience.subscriberIds[0]`. Empty when the problem is with the request body itself.
          example: kind
        message:
          type: string
          description: What is wrong with the field.
          example: must be "add_tags"
        allowedValues:
          type: array
          description: Accepted values when the field only takes a fixed set of values.
          items: {}
          example:
          - add_tags
      required:
      - path
      - message
    DataExportRun:
      type: object
      properties:
        id:
          type: string
        destinationId:
          type: string
        status:
          type: string
          enum:
          - running
          - succeeded
          - failed
        isManual:
          type: boolean
        rowCount:
          type: integer
        fileCount:
          type: integer
        byteCount:
          type: integer
        stats:
          type: object
          description: Per-dataset rows, files, bytes and the window exported.
          additionalProperties:
            type: object
        error:
          type:
          - string
          - 'null'
        startedAt:
          type: string
          format: date-time
        finishedAt:
          type:
          - string
          - 'null'
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token