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) 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}.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
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/start-the-import-7e0dcedb-3628-44a1-8688-4a68eef85cdb
- 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

