Export open actions
Export open actions
GET /exports/open-actions returns every current task in the workspace (up to 5,000) as one CSV file with a header row. Current means the task is open and is not snoozed into the future, the same as GET /tasks. The columns are the same task fields, in the same order.
Use it when a BI tool or spreadsheet needs the whole table, not a page of it. Power BI, Excel and Google Sheets re-download a table each time they refresh.
curl https://api.twelfth.ai/exports/open-actions \
--header "Authorization: Bearer $TWELFTH_API_KEY" \
--output open-actions.csv
Each workspace’s export is rebuilt at most once every 15 minutes, however many reports or people refresh it. The Last-Modified header gives the time the snapshot was taken. A task you close in twelfth leaves the export at the next rebuild.
Power BI
- An owner or admin opens Settings → AI & agents and selects Create an API key, named for this report, for example “Power BI – open actions”. See API keys. Anyone who can open the report’s queries can read the key, so do not reuse a key from another integration.
- In Power BI Desktop, choose Get data → Web, then Advanced.
- Set URL parts to
https://api.twelfth.ai/exports/open-actions. - Under HTTP request header parameters, enter
AuthorizationandBearer <your key>. - Choose OK. If Power BI asks how to sign in, choose Anonymous: the key in the header is the credential.
- In Power Query, use the first row as headers and set
dueAtto Date/Time/Timezone.
Or paste this into a blank query, with TwelfthApiKey as a text parameter:
let
Source = Csv.Document(
Web.Contents(
"https://api.twelfth.ai/exports/open-actions",
[Headers = [Authorization = "Bearer " & TwelfthApiKey]]
),
[Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]
),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true])
in
Promoted
After you publish the report, set the data source credentials to Anonymous in the Power BI service and tick Skip test connection, then schedule a refresh. No gateway is needed. The Power BI guide has the full walkthrough.
Excel works the same way: Data → From Web → Advanced, with the same URL and header.
A deliberately small resource API for server-side twelfth integrations. It starts with workspace identity and current task reads; new resources are added only after their contracts and permissions are ready. **Authentication.** Send a workspace API key as `Authorization: Bearer <key>`. Give each server, script or automation its own labelled key and never expose a key in browser code. **Errors.** Every error is `application/problem+json` (RFC 9457), with a stable machine-readable `code` and a recovery `hint`. **Compatibility.** Paths are stable and unversioned. Published operations evolve additively: existing paths, fields and documented error codes remain supported. **Rate limits.** Responses carry `RateLimit-*` headers; a `429` also carries `Retry-After`.
/exports/open-actions
Export open actions as CSV
Returns every current task in the workspace (up to 5,000) as one CSV table, for BI tools such as Power BI, Excel and Google Sheets that re-download a whole table on a schedule. Columns match the `Task` fields of `GET /tasks`, in the same order. The file is a snapshot: each workspace's export is rebuilt at most every 15 minutes, and `Last-Modified` gives the time it was taken. Cells that a spreadsheet would run as a formula are prefixed with an apostrophe.
Responses
| Status | Description | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 200 | The workspace's current tasks, one row each, with a header row. string |
||||||||||||||||||||||||||||
200 body
Example | |||||||||||||||||||||||||||||
| 401 | The workspace API key is missing, invalid or revoked. Problem |
||||||||||||||||||||||||||||
401 body
| |||||||||||||||||||||||||||||
| 405 | The resource is read-only. Problem |
||||||||||||||||||||||||||||
405 body
| |||||||||||||||||||||||||||||
| 429 | Rate limit exceeded. Retry after the window resets. Problem |
||||||||||||||||||||||||||||
429 body
| |||||||||||||||||||||||||||||
| 500 | Unexpected server error. Problem |
||||||||||||||||||||||||||||
500 body
| |||||||||||||||||||||||||||||
Need another export?
Tell us which table you report on (projects, price gaps, products, history), the rows you expect, and how often the report refreshes.