Skip to content

Get a data export

Open .md

GET/v1/api/store/{team_slug}/data_export/{id}

v1Operation ID v1_public_data_export_show

Returns one export. Poll it after you create an export: when status is ready, download the file; when it is failed, error_code says why.

pending and generating mean it is still running. progress.completed counts rows written so far.

Permission

Any member of the team, for any of the team's exports.

Path parameters

  • team_slugstringrequired

    Your team slug, shown as Team ID next to your API key in Profile.

    • Example your-team
  • idstringrequired

    The export's id, from the create answer. A hash id; unique keys and document numbers are refused with 404.

    • Example G59hl28azOL22k

Request body

This operation takes no request body.

Response

200Successful response.

  • dataobjectrequired
    Child fields (12)
    • configobject | nullrequired

      What you asked for: the dates (and date_field) as you sent them, and the columns you chose, without repeats, with schema_version. Null for customer and product exports sent without columns.

      Child fields (5)
    • created_atstring (date-time)required
    • created_byinteger | nullrequired

      A plain number for the person who created it. It is not a hash id and no operation takes it; show creator.name instead.

    • creatorobject | nullrequired

      The person who created it; null if their account was deleted. More of their account fields may appear; rely only on these.

      Child fields (3)
      • emailstring
      • idinteger

        The same plain number as created_by, not a hash id.

      • namestring
    • error_codestring | nullrequired

      Why it failed. export_generation_failed: the file could not be built; create a new export. export_attempt_expired: it did not finish in time. export_queue_failed: it could not be queued. Null unless status is failed.

      • One of: "export_generation_failed", "export_attempt_expired", "export_queue_failed"
    • expires_atstring (date-time) | nullrequired

      When the download stops working: 3 days after the export became ready. The file is then deleted; the export stays in the list but can't be downloaded.

    • file_sizeinteger | nullrequired

      File size in bytes, once ready.

    • idstringrequired

      The export id. Use it to poll and to download.

    • progressobjectrequired
      Child fields (2)
      • completedintegerrequired

        Rows written so far, not counting the header row. Updated every 500 rows; product exports update only at the end.

      • totalinteger | nullrequired

        Rows in the file, not counting the header row. Null until the export is ready: there is no total to show a percentage against while it runs.

    • statusstringrequired

      pending: queued. generating: running. ready: the file can be downloaded. failed: see error_code.

      • One of: "pending", "generating", "ready", "failed"
    • typestringrequired
      • One of: "customer_list", "sales_order_list", "invoice_list", "invoice_item_list", "payment_list", "purchase_order_list", "tax_list", "simple_product_list", "variant_product_list"
    • updated_atstring (date-time)required
  • statusintegerrequired
  • successbooleanrequired

Errors

  • 401The API key is missing or wrong (unauthenticated).

  • 403You are not allowed to do this. api_access_not_in_plan: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only {"message": "Insufficient Permission"}. Other refusals use the error envelope, with unauthorized or user_is_not_authorized.

  • 404Not found. page_not_found: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. code: null, with a message that starts "No query results for": there is no record with that id.

    When
    The id is not one of this team's exports.
    Fix
    Use the id the create operation returned.

Notes

  • An export still pending or generating about an hour after it was queued is marked failed with export_attempt_expired the next time YoPrint checks: when someone on your team creates an export, or at the regular cleanup. Create it again (the same idempotency_key queues the same export again); a smaller date range or fewer columns finishes sooner.