Skip to main content

How to Use Reporting and Export API Endpoints

Retrieve reporting and export data directly from Ventrata using dedicated endpoints.

Updated this week

Overview

Access any data table available in the Backoffice using your dashboard API Token via these endpoints:

  • POST /ventrata/dashboard/report

  • POST /ventrata/dashboard/export

These endpoints allow you to generate the same reports and exports available in the Ventrata Backoffice—programmatically. This provides a clean and flexible way to integrate reporting and data exports into your own systems.


Prerequisites:

  • Create a dashboard mode connection.

  • Add ventrata/dashboard to your list of capabilities.

📗 TIP

If you are unsure how to create a dashboard mode connection, please contact your Ventrata Success Manager.


Reporting API

The /report endpoint returns custom reports as an array of JSON objects.

  1. In your Ventrata dashboard, go to any data table (for example, Bookings, Transactions, etc.).

  2. Press the Generate Report link in the action bar.

    Generate Report

  3. Press the Reporting API cURL link to download the request body.

    Reporting API cURL

  4. Open the .curl file and:

    • Replace the 'Authorization' header with your dashboard token.

      Dashboard Token - API Key

      .curl file - Authorization header

    • (Optional) Modify the filters object to dynamically insert values.

      .curl file - Filters


    ‼️ IMPORTANT

    Some tables (for example, Terminals or Locations) are scope by destination. If your report returns no data, add a destination filter to the request body:

    "filters": {"destination: "<destination_id>"}

    Filters - Destination

    Destination ID


  5. Once submitted, the API will return the full report data in JSON format.

📗 TIP

To include all the necessary filters, we recommend first generating the report manually from the dashboard. Then press the Reporting API cURL link below the generated report. This will automatically include all applied filters in the request body.

Reporting API cURL


Exporting API

The /export endpoint lets you download raw data exports (for example, bookings, payments, tickets), also as an array of JSON objects.

  1. In the Ventrata dashboard, go to any data table in the dashboard (for example, Bookings, Transactions, etc.).

  2. Press the Export link in the action bar.

  3. Press Download Export API cURL to download the request body.

    Export

  4. Open the .curl file and:

    • Replace the 'Authorization' header with your dashboard token

      Dashboard Token - API Key

      .curl file - Authorization header

    • (Optional) Modify the filters object to fit your integration needs.

      .curl file - Filters


    ‼️ IMPORTANT

    Some tables (for example, Terminals or Locations) are scope by destination. If your report returns no data, add a destination filter to the request body:

    "filters": {"destination: "<destination_id>"}

    Filters - Destination

    Destination ID


  5. The API will return a JSON array with your requested export data.


Available Data

Every table and column available in the Backoffice is also available through these API endpoints, including but not limited to:


Troubleshooting Common cURL Issues

If you encounter errors when running the exported .curl file, check the following:

Missing Octo-Capabilities header

Error example:

{
"error": "CAPABILITIES_REQUIRED",
"errorMessage": "Every request must specify what capabilities they require…"
}

Cause:

Dashboard endpoints require the ventrata/dashboard capability.

Fix:

Ensure your request includes the following header:

-H "Octo-Capabilities: ventrata/dashboard"

zsh: command not found: -H or -d

Cause:

The shell is no longer treating the request as a single curl command.

This usually happens when line-continuation backlashes (\) are broken.

Common reasons include:

  • Trailing spaces after \

  • Backlashes removed or altered by text editors

  • Copying the command line-by-line instead of as a single block

Fixes:

  • Make sure each \ is the last character on the line (no spaces after it)

    curl -X POST "https://api.ventrata.com/octo/ventrata/dashboard/export" \
    -H "Authorization: Bearer YOUR_DASHBOARD_TOKEN_HERE" \
    -H "Content-Type: application/json" \
    -H "Octo-Capabilities: ventrata/dashboard" \
    -d '{
    "dataset": "bookings",
    "columns": [
    "id",
    "reference",
    "status",
    "created_at"
    ]
    }'

  • Paste the entire command at once into the terminal

  • Alternatively, run the commands as a single line (no backlashes)

    curl -X POST "https://api.ventrata.com/octo/ventrata/dashboard/export" -H "Authorization: Bearer YOUR_DASHBOARD_TOKEN_HERE" -H "Content-Type: application/json" -H "Octo-Capabilities: ventrata/dashboard" -d '{"dataset": "bookings","columns": ["id","reference","status","created_at"]}'

Token not recognised

Cause:

The Authorization header is misspelled or incorrectly formatted.

Fix:

Verify the header uses:

Authorization: Bearer YOUR_DASHBOARD_TOKEN

Text editor formatting issues

Some text editors (for example, Sublime Text) may:

  • Add invisible whitespace after backslashes

  • Reformat line breaks

  • Apply syntax rules that interfere with shell commands

📗 TIP

If issues persist:

  • Paste the command directly from the downloaded .curl file into the terminal

  • Or convert the request into a single-line curl command

Did this answer your question?