ETFs

Submit ETF Data Export

POST/v2/etfs/exports

Submit an asynchronous export job for this account's ETF data. dataset selects the source: metrics (default), countries, sectors, or holdings. Choose symbols and/or isins (at least one, at most 100 together) and a from/to window (metrics also accepts a metric-name list); a batch worker materialises the Parquet export, then poll GET /etfs/exports/{exportId} for signed download links. symbols and isins union. A request with neither is a 400. Scoped to the caller's API key.

Included in: Pro, Growth.

Authentication

Send your API key in the x-api-key header on every request to https://api.bavest.co. The samples read it from the BAVEST_API_KEY environment variable. Get an API key · Authentication guide

Parameters

This route takes no path or query parameters.

Try it

Draft from the schema. Review and fill in required fields before sending.

POST /v2/etfs/exports

Sent only to api.bavest.co for this request; not stored.

Sign in to sendGet an API keySends with the key above, or sign in to use your account's key. Each request counts as one API call.

Request body

  • datasetstring

    Which ETF dataset to export.

    One of metrics countries sectors holdings

  • metricsarray of string

    Metric-name filter (dataset=metrics only).

  • symbolsarray of string
  • isinsarray of string
  • fromstring (date)
  • tostring (date)

Response 200

Job accepted · application/json

  • dataobject
    • exportIdstring
    • assetClassstring

      Example etf

    • statusstring

      Example pending

    • pollstring

      Poll this path for status and links

  • metaResponseMeta

    Response envelope metadata. Always present on a 200: time is set by core/response.py on every successful response. Errors carry the same block, built by the same code, so a client parses one meta shape whether the call succeeded or failed.

    • timeinteger

      Server-side processing time in milliseconds

      Example 17

    • parametersobject

      Echo of the request parameters the endpoint resolved

Errors

  • 400Invalid request parameters. Returned when required query parameters are missing, have invalid types, or violate constraints (e.g., providing both symbol and isin when they are mutually exclusive).
  • 401Missing or invalid API key.
  • 429Rate limit exceeded. Retry after the `Retry-After` header interval.

For AI agents: this page as Markdown at /docs/v2_etfs_export_submit.md, every route in /llms.txt, the OpenAPI spec at /openapi.json.