> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreflux.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Anaplan

> Client-mode REST API connectors for Anaplan Integration API v2: auth token plus workspaces and models and file upload and import and export and process tasks

Technical Preview

## Overview

Client-mode REST API connectors for Anaplan Integration API v2: auth token plus workspaces and models and file upload and import and export and process tasks. `BASE_ADDRESS` defaults to `https://api.anaplan.com`. Topics use `analytics/anaplan/<object>/<verb>`.

| Event | Request | Source topic |
| - | - | - |
| `TokenAuthenticate` | `POST /token/authenticate` | `analytics/anaplan/auth/token/create` |
| `TokenRefresh` | `POST /token/refresh` | `analytics/anaplan/auth/token/refresh` |
| `TokenValidate` | `GET /token/validate` | `analytics/anaplan/auth/token/validate` |
| `WorkspacesList` | `GET /2/0/workspaces` | `analytics/anaplan/workspaces/list` |
| `ModelsList` | `GET /2/0/workspaces/{value.json.workspaceId}/models` | `analytics/anaplan/models/list` |
| `FilesList` | `GET /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/files` | `analytics/anaplan/files/list` |
| `FileUpload` | `PUT /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/files/{value.json.fileId}` | `analytics/anaplan/files/upload` |
| `ImportsList` | `GET /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports` | `analytics/anaplan/imports/list` |
| `ImportTaskStart` | `POST /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports/{value.json.importId}/tasks` | `analytics/anaplan/imports/tasks/start` |
| `ImportTaskGet` | `GET /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports/{value.json.importId}/tasks/{value.json.taskId}` | `analytics/anaplan/imports/tasks/get` |
| `ExportTaskStart` | `POST /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/exports/{value.json.exportId}/tasks` | `analytics/anaplan/exports/tasks/start` |
| `ExportTaskGet` | `GET /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/exports/{value.json.exportId}/tasks/{value.json.taskId}` | `analytics/anaplan/exports/tasks/get` |
| `ProcessTaskStart` | `POST /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/processes/{value.json.processId}/tasks` | `analytics/anaplan/processes/tasks/start` |
| `ProcessTaskGet` | `GET /2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/processes/{value.json.processId}/tasks/{value.json.taskId}` | `analytics/anaplan/processes/tasks/get` |

## Authentication

AnaplanAuthToken. AnaplanAuthRestApi ([https://auth.anaplan.com](https://auth.anaplan.com)) POST /token/authenticate with Authorization: \{value.json.authorization} ("Basic base64(user:password)" or the CACertificate header form) returns tokenInfo.tokenValue; refresh with /token/refresh before 30 minutes. AnaplanRestApi events send Authorization: AnaplanAuthToken \{value.json.auth\_token}.

> [!WARNING]
>
> Keep credentials in broker secrets and never retain topics that carry tokens or client secrets.

## Notes

* Two connectors because authentication lives on auth.anaplan.com and the Integration API on api.anaplan.com.
* FileUpload sends \{value.json.body} as the whole file (single chunk, application/octet-stream). Larger files need the chunked PUT /chunks flow; not packaged.
* Tokens expire after 30 minutes; call TokenRefresh before expiry.

## Basic Syntax

```lot wrap theme={"theme":"css-variables","languages":{"custom":["/languages/lot.json"]}}
DEFINE ROUTE AnaplanAuthRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://auth.anaplan.com"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '60'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT TokenAuthenticate
        WITH SOURCE_TOPIC "analytics/anaplan/auth/token/create"
        WITH DESTINATION_TOPIC "analytics/anaplan/auth/token/create/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/token/authenticate"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "{value.json.authorization}"
        WITH BODY ""
    ADD EVENT TokenRefresh
        WITH SOURCE_TOPIC "analytics/anaplan/auth/token/refresh"
        WITH DESTINATION_TOPIC "analytics/anaplan/auth/token/refresh/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/token/refresh"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
        WITH BODY ""
    ADD EVENT TokenValidate
        WITH SOURCE_TOPIC "analytics/anaplan/auth/token/validate"
        WITH DESTINATION_TOPIC "analytics/anaplan/auth/token/validate/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/token/validate"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"

DEFINE ROUTE AnaplanRestApi WITH TYPE REST_API
    ADD REST_API_CONFIG
        WITH BASE_ADDRESS "https://api.anaplan.com"
        WITH ENABLE_CLIENT "true"
        WITH USE_SSL "true"
        WITH REQUEST_TIMEOUT '120'
        WITH DEFAULT_CONTENT_TYPE "application/json"
    ADD EVENT WorkspacesList
        WITH SOURCE_TOPIC "analytics/anaplan/workspaces/list"
        WITH DESTINATION_TOPIC "analytics/anaplan/workspaces/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT ModelsList
        WITH SOURCE_TOPIC "analytics/anaplan/models/list"
        WITH DESTINATION_TOPIC "analytics/anaplan/models/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT FilesList
        WITH SOURCE_TOPIC "analytics/anaplan/files/list"
        WITH DESTINATION_TOPIC "analytics/anaplan/files/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/files"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT FileUpload
        WITH SOURCE_TOPIC "analytics/anaplan/files/upload"
        WITH DESTINATION_TOPIC "analytics/anaplan/files/upload/response"
        WITH METHOD "PUT"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/files/{value.json.fileId}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Content-Type" "application/octet-stream"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT ImportsList
        WITH SOURCE_TOPIC "analytics/anaplan/imports/list"
        WITH DESTINATION_TOPIC "analytics/anaplan/imports/list/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT ImportTaskStart
        WITH SOURCE_TOPIC "analytics/anaplan/imports/tasks/start"
        WITH DESTINATION_TOPIC "analytics/anaplan/imports/tasks/start/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports/{value.json.importId}/tasks"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Content-Type" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT ImportTaskGet
        WITH SOURCE_TOPIC "analytics/anaplan/imports/tasks/get"
        WITH DESTINATION_TOPIC "analytics/anaplan/imports/tasks/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/imports/{value.json.importId}/tasks/{value.json.taskId}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT ExportTaskStart
        WITH SOURCE_TOPIC "analytics/anaplan/exports/tasks/start"
        WITH DESTINATION_TOPIC "analytics/anaplan/exports/tasks/start/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/exports/{value.json.exportId}/tasks"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Content-Type" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT ExportTaskGet
        WITH SOURCE_TOPIC "analytics/anaplan/exports/tasks/get"
        WITH DESTINATION_TOPIC "analytics/anaplan/exports/tasks/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/exports/{value.json.exportId}/tasks/{value.json.taskId}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
    ADD EVENT ProcessTaskStart
        WITH SOURCE_TOPIC "analytics/anaplan/processes/tasks/start"
        WITH DESTINATION_TOPIC "analytics/anaplan/processes/tasks/start/response"
        WITH METHOD "POST"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/processes/{value.json.processId}/tasks"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Content-Type" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
        WITH BODY "{value.json.body}"
    ADD EVENT ProcessTaskGet
        WITH SOURCE_TOPIC "analytics/anaplan/processes/tasks/get"
        WITH DESTINATION_TOPIC "analytics/anaplan/processes/tasks/get/response"
        WITH METHOD "GET"
        WITH ENDPOINT "/2/0/workspaces/{value.json.workspaceId}/models/{value.json.modelId}/processes/{value.json.processId}/tasks/{value.json.taskId}"
        WITH HEADERS
            ADD "Accept" "application/json"
            ADD "Authorization" "AnaplanAuthToken {value.json.auth_token}"
```

## Sources

* [https://help.anaplan.com/upload-and-import-a-csv-75094951-6424-446c-af03-cf9852af1179](https://help.anaplan.com/upload-and-import-a-csv-75094951-6424-446c-af03-cf9852af1179)
* [https://help.anaplan.com/start-the-import-7e0dcedb-3628-44a1-8688-4a68eef85cdb](https://help.anaplan.com/start-the-import-7e0dcedb-3628-44a1-8688-4a68eef85cdb)
* [https://help.anaplan.com/monitor-the-import-tasks-107143d0-91b3-4158-b2ee-c30a9ba4ee5f](https://help.anaplan.com/monitor-the-import-tasks-107143d0-91b3-4158-b2ee-c30a9ba4ee5f)
* [https://www.postman.com/apiplan/official-anaplan-collection/documentation/2m6331d/official-anaplan-collection](https://www.postman.com/apiplan/official-anaplan-collection/documentation/2m6331d/official-anaplan-collection)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.