Cube Software is an agentic FP&A (Financial Planning & Analysis) platform that connects source systems, spreadsheets, and workflows into one collaborative environment for planning, reporting, and analysis. Its core constructs include dimensions, planning tables, canvases, and workflow tasks. The Cube API provides programmatic access to these for automating pipelines and integrating external systems.
Power end-to-end data operations for your Cube Software API API with Nexla. Our bi-directional Cube Software API connector is purpose-built for Cube Software API, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Cube Software API or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Cube Software API workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to the Cube Software API, you need an active Cube Software account and an OAuth 2.0 application registered within your Cube organization. Cube uses a three-legged OAuth 2.0 Authorization Code flow with PKCE (Proof Key for Code Exchange) for delegated user access.
Cube Software creates an OAuth Application and provides the Client ID and Client Secret used to authenticate your integration with the API. To obtain these credentials, contact your Cube Software account team or administrator, who can provision an OAuth application for your organization.
Once the OAuth application is created, you will receive:
Client ID — A unique public identifier assigned to your registered application.
Client Secret — A private key used to authenticate your application when requesting tokens. This value should be kept secure and never shared publicly.
The authorization endpoint for Cube Software OAuth is https://portal.cubesoftware.com/o/authorize/ and token exchange is handled at your Cube instance's base URL, typically https://api.cubesoftware.com/o/token/.
For additional information about Cube Software's authentication flows, refer to the Cube API Authentication Flows article in the Cube Help Center.
The Cube Software API base URL is the root URL for all API calls made by Nexla. For most organizations, this is https://api.cubesoftware.com. Confirm the correct base URL with your Cube Software administrator if your organization uses a custom deployment.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Cube Software API credentials use a three-legged OAuth 2.0 Authorization Code flow with PKCE. This flow requires user login via Cube's Portal to authorize access, after which Nexla exchanges the authorization code for an access token. OAuth tokens issued by Cube Software expire after 10 hours (36,000 seconds) and are automatically refreshed by Nexla using the refresh token.
Enter your OAuth 2.0 Client ID in the Client ID field. This is the unique public identifier provided when your OAuth application was registered in Cube Software.
Enter your Client Secret in the Client Secret field. This private key authenticates your application during the token exchange process.
Important
The Client Secret grants access to your Cube Software data. Store it securely and do not share it with unauthorized users. If the secret is compromised, contact your Cube Software administrator to rotate it immediately.
When prompted, complete the OAuth authorization flow by logging in to your Cube Software Portal account (https://portal.cubesoftware.com). Nexla will redirect you through the authorization page where you can review the requested permissions and grant access. The authorization request will include read write scopes by default, allowing Nexla to both read data from and write data to your Cube Software account.
Once all of the relevant steps in the above sections have been completed, click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.
The Cube Software API connector enables Nexla to ingest data from your Cube FP&A environment, including planning tables, dimensions, cubes, canvases, widgets, connections, tasks, and workflow data. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Cube Software API connector tile, then select the credential that will be used to connect to the Cube Software API instance, and click Next; or, create a new Cube Software API credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Cube Software API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
Retrieve an action item
This endpoint fetches a specific action item from Cube Software by its unique ID. Use this endpoint when you need to retrieve the details of a particular action item—such as its status, assignee, due date, or associated resources—for tracking or downstream processing.
Enter the unique identifier of the action item you want to retrieve in the Action Item ID field. Action item IDs can be obtained from a list endpoint or from the Cube Software UI.
If your Cube Software organization requires it, enter your Company ID (the X-Company-ID header value) in the corresponding field. This header scopes the request to your specific company context within a multi-company Cube deployment.
This endpoint fetches a specific chat message from an agent chat session in Cube Software by its unique ID. Use this endpoint to retrieve the content and metadata of a particular AI agent chat message for auditing, analysis, or downstream processing.
Enter the unique identifier of the chat message you want to retrieve in the Chat Message ID field. Message IDs can be obtained from the Cube Software agent chat interface or from prior API responses.
This endpoint retrieves a list of all canvases available in your Cube Software organization. Canvases are collaborative workspaces within Cube used for financial reporting and analysis. Use this endpoint to enumerate all canvases, optionally filtering by source or widget type, and to build downstream workflows that act on canvas data.
No additional configuration is required beyond selecting this endpoint. The endpoint automatically returns all canvases accessible to your credential, with each canvas record containing its ID, name, configuration, and associated metadata.
The response data is extracted from the $.canvases[*] path of the API response, so each record in the resulting Nexset corresponds to one canvas. For complete canvas API reference details, see the Cube Software Canvases API documentation.
Retrieve a specific canvas
This endpoint fetches the full details of a single canvas by its unique ID. Use this endpoint when you need the complete configuration and metadata of a specific canvas—for example, to replicate a canvas configuration, audit its settings, or use its properties in downstream flows.
Enter the unique identifier of the canvas you want to retrieve in the Canvas ID field. Canvas IDs can be found using the "List all canvases" endpoint or from the Cube Software UI.
List all widgets
This endpoint retrieves a list of all available widgets in the Cube Software canvas system. Widgets are the individual visual components—such as charts, tables, and KPI cards—that can be embedded within canvases. Use this endpoint to inventory available widget types or to build flows that depend on widget configuration data.
No additional configuration is required beyond selecting this endpoint. The endpoint returns all widgets, with each record extracted from the $.data[*] path of the API response.
Retrieve widget details
This endpoint fetches detailed information about a specific widget by its unique ID. Use this endpoint to retrieve the configuration, type, and properties of an individual canvas widget for auditing, documentation, or integration purposes.
Enter the unique identifier of the widget you want to retrieve in the Widget ID field. Widget IDs can be obtained using the "List all widgets" endpoint.
List all connections
This endpoint retrieves all data connections associated with your Cube Software company. Connections represent integrations with external data sources—such as ERP systems, accounting platforms, and spreadsheets—that power Cube's planning data. Use this endpoint to audit or replicate your connection inventory.
Enter your Company ID in the corresponding field. This value is passed as the X-Company-ID request header and is required to scope the response to your specific organization. Contact your Cube Software administrator if you are unsure of your Company ID.
List all cubes
This endpoint retrieves a list of all cubes in your Cube Software system. In Cube Software, a "cube" is a data matrix that organizes planning data across dimensions—similar to a multidimensional spreadsheet or OLAP cube. Use this endpoint to enumerate all cubes and ingest their metadata into Nexla for reporting or downstream analysis.
No additional configuration is required beyond selecting this endpoint. The endpoint returns all available cubes, with each record extracted from the $.data[*] path of the API response.
Retrieve a data table
This endpoint fetches detailed information about a specific data table in Cube Software by its unique ID. Data tables in Cube store structured financial datasets that can be mapped to planning scenarios. Use this endpoint to extract data table configuration and metadata for synchronization or auditing purposes.
Enter the unique identifier of the data table in the Data Table ID field.
Enter your Company ID in the corresponding field, required as the X-Company-ID request header to scope the response to your organization.
List all dimensions
This endpoint retrieves all dimensions defined in your Cube Software organization. Dimensions represent the hierarchical structures used to organize planning data—such as departments, cost centers, products, or time periods. Use this endpoint to ingest and synchronize your dimension master data.
Enter your Company ID in the corresponding field. This is passed as the X-Company-ID request header and is required to scope dimensions to your organization.
Each dimension record is extracted from the $.data[*] path of the API response. Dimensions can optionally include tags if configured in your Cube Software instance.
List Planning Tables
This endpoint retrieves all planning tables in your Cube Software workspace. Planning tables are the core data containers in Cube, holding the structured datasets—such as budgets, forecasts, and actuals—that form the basis of your FP&A processes. Use this endpoint to enumerate all planning tables for synchronization, reporting, or downstream analysis.
Enter your Company ID in the corresponding field. This is passed as the X-Company-ID request header to scope the response to your organization.
Retrieve Planning Table
This endpoint fetches a specific planning table by its unique ID. Use this endpoint to retrieve the schema, configuration, and metadata of a particular planning table—for example, to inspect its column definitions before synchronizing data from an external system.
Enter the unique identifier of the planning table in the Table ID field.
Enter your Company ID in the corresponding field, required as the X-Company-ID request header.
List Table Datasets
This endpoint retrieves all datasets associated with a specific planning table. Datasets represent individual versions or slices of data within a planning table—such as a particular budget scenario or forecast period. Use this endpoint to enumerate datasets for auditing, versioning, or downstream data processing.
Enter the unique identifier of the planning table whose datasets you want to retrieve in the Table ID field.
Enter your Company ID in the corresponding field, required as the X-Company-ID request header.
List Workflow Tasks
This endpoint retrieves workflow tasks from your Cube Software organization, with optional filtering by assignee, status, or process. Workflow tasks in Cube are used to manage the FP&A planning lifecycle—such as budget submission deadlines, review approvals, and variance analysis assignments. Use this endpoint to synchronize task data with external project management tools or for reporting.
Enter your Company ID in the corresponding field. This is passed as the X-Company-ID request header and is required to scope tasks to your organization.
Each task record is extracted from the $.data[*] path of the API response. Task fields include assignee, status, due date, process, and completion metadata.
Update a task
This endpoint partially updates a task in Cube Software by its unique ID using a PATCH request. Although classified as a source template (it returns the updated task record), it is used in source flows where the result of the update needs to be captured and processed downstream.
Enter the unique identifier of the task to update in the Task ID field.
Enter your Company ID in the corresponding field. This is passed as the X-Company-ID request header.
Provide values for the task properties you want to update, including:
Process ID — The identifier of the workflow process this task belongs to.
Name — The task name or title.
Description — A description of the task's purpose or requirements.
Status — The current status of the task (e.g., pending, in_progress, completed).
Assignee ID — The unique identifier of the user assigned to this task.
Due Date — The date by which the task must be completed, in yyyy-MM-dd format.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Cube Software API data sources can also be manually configured to ingest data from any valid Cube Software API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request headers. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
The base URL for the Cube Software API is https://api.cubesoftware.com. Several endpoints require a X-Company-ID request header to scope requests to your organization — enter it as X-Company-ID:your_company_id in the Request Headers field (the Authorization header is added automatically by your Nexla credential). Most list endpoints return records under the $.data[*] path, except "List all canvases," which uses $.canvases[*]; single-record GET endpoints return the record at the response root ($). For the full list of available endpoints, see the Cube Developer Center and Cube Help Center API section.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Cube Software API data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Cube Software API destination, and select the Send to Destination option from the menu. Select the Cube Software API connector from the list of available destination connectors, then select the credential that will be used to connect to the Cube Software API organization, and click Next; or, create a new Cube Software API credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Cube Software API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create an action item
This endpoint creates a new action item in Cube Software with the details specified in the Nexset payload. Use this endpoint to programmatically add action items—such as follow-up tasks, data review requests, or planning milestones—to your Cube Software organization.
No additional URL parameters are required. The action item details are sent as a JSON body in the POST request. Ensure the Nexset records are mapped to the fields expected by the Cube Software action items API (e.g., title, assignee, due date, status).
This endpoint partially updates an existing action item in Cube Software by its unique ID using a PATCH request. Use this endpoint to update specific fields of an action item—such as its status, assignee, or due date—without replacing the entire record.
Enter the unique identifier of the action item to update in the Action Item ID field. This ID will be appended to the API URL path. Action item IDs can be retrieved using the "Retrieve an action item" source endpoint.
The fields to update are sent as a JSON body in the PATCH request. Only the fields included in the payload will be modified; all other fields will remain unchanged.
Create Chat Message
This endpoint creates a new chat message within an existing Cube Software agent chat session. Use this endpoint to programmatically send messages to Cube's AI agent—for example, to trigger automated queries, submit data summaries for analysis, or drive agent interactions from external systems.
No additional URL parameters are required. The message details (including the chat session ID and message content) are sent as a JSON body in the POST request. Ensure the Nexset payload includes the required session context expected by the Cube Software agent chat API.
This endpoint creates a new agent chat session in Cube Software. Use this endpoint to programmatically initiate a new conversation with Cube's AI agent—for example, as part of an automated workflow that submits planning data for AI-driven analysis.
No additional URL parameters are required. The session configuration details are sent as a JSON body in the POST request. The Nexset payload should include any session context required by the Cube Software agent chat sessions API.
This endpoint creates a new canvas in Cube Software with the specified configuration and properties. Canvases are collaborative reporting and analysis workspaces within Cube. Use this endpoint to programmatically provision new canvases—for example, to automate the creation of standardized reporting templates across departments.
No additional URL parameters are required. The canvas configuration details are sent as a JSON body in the POST request. Ensure the Nexset payload includes the required canvas properties expected by the Cube Software API.
Create a cube
This endpoint creates a new cube (data matrix) in Cube Software with the specified matrix, message, metadata, and other properties. Use this endpoint to programmatically add new cubes to your Cube Software environment—for example, to automate the creation of new planning scenarios or data models.
No additional URL parameters are required. The cube definition details are sent as a JSON body in the POST request. The payload should include the cube matrix structure, associated dimensions, and any required metadata.
Update a data table
This endpoint updates an existing data table in Cube Software with new configuration, mappings, and settings, replacing the current table definition. Use this endpoint to synchronize data table configurations from an external source of truth into Cube Software.
Enter the unique identifier of the data table to update in the Data Table ID field. This ID will be appended to the API URL path.
The complete updated table configuration is sent as a JSON body in the POST request. Review the Cube Software data tables API documentation for the expected payload structure.
Partially update a data table
This endpoint performs a partial update on an existing data table configuration using a PATCH request. Use this endpoint when you need to modify only specific fields of a data table—such as its name, description, or column mappings—without affecting other existing settings.
Enter the unique identifier of the data table to update in the Data Table ID field. This ID will be appended to the API URL path.
Include only the fields to be updated in the JSON body. Fields not included in the payload will retain their current values.
Create a dimension
This endpoint creates a new dimension in Cube Software with the specified name, parent, and protection settings. Dimensions define the hierarchical data structures—such as departments, cost centers, or time periods—that organize planning data in Cube. Use this endpoint to automate dimension provisioning when onboarding new organizational entities.
No additional URL parameters are required. The dimension definition is sent as a JSON body in the POST request. The payload should include the dimension name, its parent dimension (if applicable), and any protection settings.
Update Dimension
This endpoint updates a dimension in Cube Software by its unique ID, replacing properties such as name, type, formula, and metadata. Use this endpoint to programmatically synchronize dimension configurations—for example, to reflect organizational restructuring or rename cost centers across your Cube environment.
Enter the unique identifier of the dimension to update in the Dimension ID field. This ID will be appended to the API URL path.
The updated dimension properties are sent as a JSON body in the POST request. Include all required fields as specified in the Cube Software dimensions API documentation.
Create Planning Table
This endpoint creates a new planning table in Cube Software with the specified schema and configuration. Planning tables are the primary data containers in Cube, holding the structured financial datasets—such as budgets, forecasts, and actuals—that support FP&A workflows. Use this endpoint to automate the provisioning of new planning tables for new projects, departments, or planning cycles.
No additional URL parameters are required. The planning table schema and configuration are sent as a JSON body in the POST request. The payload should include the table name, column definitions, and any required configuration settings.
Upsert Planning Table Data
This endpoint creates or replaces planning table data and configuration using a PUT request. Use this endpoint when you need to fully synchronize a planning table's data from an external system—for example, pushing actuals from an ERP system or budget data from a spreadsheet into a Cube Software planning table.
Enter the unique identifier of the planning table in the Table ID field. This ID will be appended to the API URL path.
The complete table data and configuration are sent as a JSON body in the PUT request. Note that a PUT request replaces the existing data entirely; use the "Update Planning Table" (PATCH) endpoint for partial updates.
:::warning Important
The Upsert (PUT) endpoint replaces all existing data in the target planning table. Ensure your Nexset payload contains the complete intended dataset before using this endpoint, as data not included in the payload will be removed.
:::
Update Planning Table
This endpoint partially updates a planning table's properties and metadata using a PATCH request. Use this endpoint when you need to update specific metadata fields—such as the table's name, description, or settings—without replacing the underlying data.
Enter the unique identifier of the planning table in the Table ID field. This ID will be appended to the API URL path.
Include only the properties to be updated in the JSON body. Fields not included in the payload will retain their current values.
Create or Update Table Dataset
This endpoint creates or replaces dataset records for a specific planning table using a PUT request. Use this endpoint to load or refresh dataset data—such as a particular budget scenario or forecast version—within an existing Cube Software planning table.
Enter the unique identifier of the planning table in the Table ID field. This ID will be appended to the API URL path to target the correct table's datasets endpoint.
The dataset records to create or replace are sent as a JSON body in the PUT request. Include all required dataset fields as specified in the Cube Software planning tables API documentation.
Create Task
This endpoint creates a new workflow task in Cube Software with assignments, due dates, and metadata. Workflow tasks in Cube are used to manage the FP&A planning lifecycle—such as budget submission deadlines, review approvals, and variance analysis assignments. Use this endpoint to automate task creation as part of a planning cycle kickoff or process automation.
No additional URL parameters are required. The task details are sent as a JSON body in the POST request. The payload should include the task name, process ID, assignee ID, due date, and any other required metadata.
Create a template
This endpoint creates a new template in Cube Software with specified properties including content, styles, and sharing options. Templates in Cube can be used to standardize the structure and formatting of canvases and reports. Use this endpoint to programmatically provision templates—for example, to roll out standardized reporting templates across departments.
No additional URL parameters are required. The template definition—including content, style settings, and sharing configuration—is sent as a JSON body in the POST request.
Cube Software API destinations can also be manually configured to send data to any valid Cube Software API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
The base URL for the Cube Software API is https://api.cubesoftware.com. For update and upsert operations, append the ID of the target object to the end of the URL (e.g., https://api.cubesoftware.com/dimensions/ followed by the dimension ID). Most destination endpoints (action items, tasks, canvases, cubes, chat sessions, dimensions, planning tables, templates) use single-record POST requests; upsert operations on planning tables and datasets use PUT; partial updates use PATCH. Record batching is most applicable to planning table dataset upsert operations. The Authorization header is added automatically by your Nexla credential and does not need to be entered manually.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Cube Software API endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the Cube Software API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.