EGYM Asynchronous exports API

Background export jobs that produce downloadable JSON, JSONL, or CSV files.

Operations 2

POST /api/v1/data/async Create async export job #
GET /api/v1/data/async/jobs/{jobId} Get async export job status #

Documentation

Specifications

Other Resources

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/egym-asynchronous-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 email required.

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

OpenAPI Specification

egym-asynchronous-exports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Data Hub Asynchronous exports API
  description: APIs for exporting analytics, Smart Strength workouts, and measurement data for the authenticated gym location. Data Hub is in pilot and available exclusively to EGYM Enterprise Pack customers; functionality and API contracts may change.
  termsOfService: https://egym.com/en/terms/
  contact:
    name: Operator Experience Team
    url: https://egym.com/
    email: ox-dev@egym.com
  version: Pilot
servers:
- url: https://analytics.api.egym.com
  description: Production
security:
- apiKeyAuth: []
tags:
- name: Asynchronous exports
  description: Background export jobs that produce downloadable JSON, JSONL, or CSV files.
paths:
  /api/v1/data/async:
    post:
      tags:
      - Asynchronous exports
      summary: Create async export job
      description: Creates a background export job for a file-based event data export. Async exports can go back up to one year. Requests cannot include event data older than one year, and each export job can cover at most 365 days.
      operationId: createAsyncExportJob
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncExportCreateRequest'
      responses:
        '201':
          description: Export job created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncExportCreateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /api/v1/data/async/jobs/{jobId}:
    get:
      tags:
      - Asynchronous exports
      summary: Get async export job status
      description: Returns the current status of an async export job. A downloadURL is returned only when the job status is DONE.
      operationId: getAsyncExportJobStatus
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Export job status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncExportStatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ErrorDTO:
      type: object
      properties:
        message:
          type: string
    AsyncExportStatusResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/AsyncExportJobStatus'
        downloadURL:
          type:
          - string
          - 'null'
          format: uri
    ExportType:
      type: string
      enum:
      - SMART_STRENGTH_WORKOUTS
      - SMART_STRENGTH_ASSESSMENTS
      - FLEXIBILITY_MEASUREMENTS
      - BODY_MEASUREMENTS
    AsyncExportFileType:
      type: string
      enum:
      - JSON
      - JSONL
      - CSV
    AsyncExportCreateRequest:
      type: object
      required:
      - startDate
      - endDate
      - exportType
      properties:
        startDate:
          type: string
          format: date
          description: Start date in YYYY-MM-DD format. Must not be older than one year.
        endDate:
          type: string
          format: date
          description: End date in YYYY-MM-DD format. The requested period cannot exceed 365 days or include data older than one year.
        exportType:
          $ref: '#/components/schemas/ExportType'
        fileType:
          description: Optional output format. Defaults to JSONL when omitted.
          default: JSONL
          allOf:
          - $ref: '#/components/schemas/AsyncExportFileType'
    AsyncExportCreateResponse:
      type: object
      properties:
        jobId:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/AsyncExportJobStatus'
    AsyncExportJobStatus:
      type: string
      enum:
      - IN_PROGRESS
      - DONE
      - FAILED
      - EXPIRED
  responses:
    BadRequest:
      description: Invalid request parameters or body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
    Forbidden:
      description: API key is not authorized to access this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
    Unauthorized:
      description: Missing, malformed, or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
    InternalServerError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
    NotFound:
      description: Requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      description: API key generated by EGYM for a gym location.
      name: x-api-key
      in: header