# Public API

Public API for accessing agents, flows, and analytics.

## Authentication

The Public API supports two API key types. Pass the key as a Bearer token:

```
Authorization: Bearer <YOUR_API_KEY>
```

### Account API key (GENERAL)

Account-level key that acts on behalf of the entire account. Required for account-level endpoints unless noted otherwise.

### User API key (USER)

User-level key tied to a specific user. Required for write operations and user-owned resources. **Also accepted on all account-level endpoints.**

Each operation documents which key type(s) it accepts in its **Security** section.

Version: 1.0.0
License: Proprietary

## Servers

```
https://prod-api.getfrontline.ai
```

## Security

### accountApiKey

Account-level API key (GENERAL). Authenticates on behalf of the entire account. Use for read-only and analytics endpoints marked as account-level in this documentation.

Type: http
Scheme: bearer
Bearer Format: Account API Key

### userApiKey

User-level API key (USER). Authenticates on behalf of a specific user. Required for write operations and user-owned resources. Also accepted on all account-level endpoints.

Type: http
Scheme: bearer
Bearer Format: User API Key

## Download OpenAPI description

[Public API](https://docs.getfrontline.ai/_bundle/reference/openapi.yaml)

## Agent Builder

View and manage your AI agents across your account

### List all agents

 - [GET /public/v1/agents](https://docs.getfrontline.ai/reference/openapi/agent-builder/listagents.md): Returns a list of agents associated with the account.

### Create an agent

 - [POST /public/v1/agents](https://docs.getfrontline.ai/reference/openapi/agent-builder/createagent.md): Creates an assistant with the internal defaults for theme, channels, settings, flow, and billing checks. Requires a USER API key.

### Get agent details

 - [GET /public/v1/agents/{agentId}](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagent.md): Returns a safe agent detail without secret key or HMAC fields.

### Update an agent

 - [PUT /public/v1/agents/{agentId}](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagent.md): Updates basic agent metadata. Requires a USER API key.

### Delete an agent

 - [DELETE /public/v1/agents/{agentId}](https://docs.getfrontline.ai/reference/openapi/agent-builder/deleteagent.md): Soft deletes an agent using the assistant manager. Requires a USER API key.

### Get agent setting

 - [GET /public/v1/agents/{agentId}/agent-setting](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentsetting.md): Returns safe agent model, instruction, tool, playbook, and connected-account settings.

### Update agent setting

 - [PUT /public/v1/agents/{agentId}/agent-setting](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentsetting.md): Updates instructions, model, tools, playbooks, connected accounts, and system tool settings. Requires a USER API key.

### Get agent theme

 - [GET /public/v1/agents/{agentId}/theme](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagenttheme.md): Returns textual and color theme settings. Image uploads are not exposed in the public builder.

### Update agent theme

 - [PUT /public/v1/agents/{agentId}/theme](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagenttheme.md): Updates textual and color theme settings. Requires a USER API key.

### Update agent deployment status

 - [PUT /public/v1/agents/{agentId}/deployment-status](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentdeploymentstatus.md): Publishes or pauses an agent by changing isOffline. Requires a USER API key and runs billing checks.

### Get all agent channel settings

 - [GET /public/v1/agents/{agentId}/settings](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentchannelsettings.md): Returns livechat, WhatsApp, Instagram, and Messenger channel settings.

### Get livechat settings

 - [GET /public/v1/agents/{agentId}/settings/livechat](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentlivechatsettings.md): Returns livechat channel settings for an agent.

### Update livechat settings

 - [PUT /public/v1/agents/{agentId}/settings/livechat](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentlivechatsettings.md): Updates livechat channel settings. Requires a USER API key.

### Get whatsapp settings

 - [GET /public/v1/agents/{agentId}/settings/whatsapp](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentwhatsappsettings.md): Returns whatsapp channel settings for an agent.

### Update whatsapp settings

 - [PUT /public/v1/agents/{agentId}/settings/whatsapp](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentwhatsappsettings.md): Updates whatsapp channel settings. Requires a USER API key.

### Get instagram settings

 - [GET /public/v1/agents/{agentId}/settings/instagram](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentinstagramsettings.md): Returns instagram channel settings for an agent.

### Update instagram settings

 - [PUT /public/v1/agents/{agentId}/settings/instagram](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentinstagramsettings.md): Updates instagram channel settings. Requires a USER API key.

### Get messenger settings

 - [GET /public/v1/agents/{agentId}/settings/messenger](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentmessengersettings.md): Returns messenger channel settings for an agent.

### Update messenger settings

 - [PUT /public/v1/agents/{agentId}/settings/messenger](https://docs.getfrontline.ai/reference/openapi/agent-builder/updateagentmessengersettings.md): Updates messenger channel settings. Requires a USER API key.

### Get agent analytics

 - [GET /public/v1/agents/{agentId}/analytics](https://docs.getfrontline.ai/reference/openapi/agent-builder/getagentanalytics.md): Returns credit usage, conversation counts, and conversations breakdown by channel for a specific agent.

## Flows

View and manage flows associated with your agents

### List flows for an agent

 - [GET /public/v1/agents/{agentId}/flows](https://docs.getfrontline.ai/reference/openapi/flows/listagentflows.md): Returns a list of flows associated with a specific agent. Nodes and logic are excluded.

### Create a flow for an agent

 - [POST /public/v1/agents/{agentId}/flows](https://docs.getfrontline.ai/reference/openapi/flows/createagentflow.md): Creates a flow and an empty graph snapshot for a specific agent.

### Get flow details

 - [GET /public/v1/agents/{agentId}/flows/{flowId}](https://docs.getfrontline.ai/reference/openapi/flows/getagentflow.md): Returns flow metadata. Pass includeNodes=true to include graph nodes.

### Update a flow

 - [PUT /public/v1/agents/{agentId}/flows/{flowId}](https://docs.getfrontline.ai/reference/openapi/flows/updateagentflow.md): Updates flow metadata or status.

### Delete a flow

 - [DELETE /public/v1/agents/{agentId}/flows/{flowId}](https://docs.getfrontline.ai/reference/openapi/flows/deleteagentflow.md): Soft deletes a flow.

### Get flow graph

 - [GET /public/v1/agents/{agentId}/flows/{flowId}/graph](https://docs.getfrontline.ai/reference/openapi/flows/getagentflowgraph.md): Returns the flow snapshot with nodes and edges.

### Create flow node

 - [POST /public/v1/agents/{agentId}/flows/{flowId}/nodes](https://docs.getfrontline.ai/reference/openapi/flows/createagentflownode.md): Creates a node in a flow graph. The server assigns nodeId and alias; use the 201 response when adding edges or updates.

### Update flow node

 - [PUT /public/v1/agents/{agentId}/flows/{flowId}/nodes/{nodeId}](https://docs.getfrontline.ai/reference/openapi/flows/updateagentflownode.md): Updates a flow node and returns the updated graph.

### Delete flow node

 - [DELETE /public/v1/agents/{agentId}/flows/{flowId}/nodes/{nodeId}](https://docs.getfrontline.ai/reference/openapi/flows/deleteagentflownode.md): Deletes a node and removes incoming and outgoing edges.

### Create flow edge

 - [POST /public/v1/agents/{agentId}/flows/{flowId}/edges](https://docs.getfrontline.ai/reference/openapi/flows/createagentflowedge.md): Adds or replaces an edge by handle in the flow graph.

### Delete flow edge

 - [DELETE /public/v1/agents/{agentId}/flows/{flowId}/edges](https://docs.getfrontline.ai/reference/openapi/flows/deleteagentflowedge.md): Removes an edge from the flow graph.

## Flow Variables

Manage variables scoped to an agent's flow

### List agent variables

 - [GET /public/v1/agents/{agentId}/variables](https://docs.getfrontline.ai/reference/openapi/flow-variables/listagentvariables.md): Lists variables for an agent. Requires a USER API key.

### Create agent variable

 - [POST /public/v1/agents/{agentId}/variables](https://docs.getfrontline.ai/reference/openapi/flow-variables/createagentvariable.md): Creates a variable for an agent. Requires a USER API key.

### List all agent variables

 - [GET /public/v1/agents/{agentId}/variables/all](https://docs.getfrontline.ai/reference/openapi/flow-variables/listallagentvariables.md): Lists all agent variables including defaults. Requires a USER API key.

### Check agent variable name

 - [GET /public/v1/agents/{agentId}/variables/check-name](https://docs.getfrontline.ai/reference/openapi/flow-variables/checkagentvariablename.md): Checks whether a variable name exists for an agent. Requires a USER API key.

### Get agent variable

 - [GET /public/v1/agents/{agentId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/flow-variables/getagentvariable.md): Manages a single agent variable. Requires a USER API key.

### Update agent variable

 - [PUT /public/v1/agents/{agentId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/flow-variables/updateagentvariable.md): Manages a single agent variable. Requires a USER API key.

### Delete agent variable

 - [DELETE /public/v1/agents/{agentId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/flow-variables/deleteagentvariable.md): Manages a single agent variable. Requires a USER API key.

## Intents

Manage agent intents and training phrases

### List intents

 - [GET /public/v1/agents/{agentId}/intents](https://docs.getfrontline.ai/reference/openapi/intents/listintents.md): Lists agent intents. Requires a USER API key.

### Create intent

 - [POST /public/v1/agents/{agentId}/intents](https://docs.getfrontline.ai/reference/openapi/intents/createintent.md): Creates an agent intent. Requires a USER API key.

### List all intents

 - [GET /public/v1/agents/{agentId}/intents/all](https://docs.getfrontline.ai/reference/openapi/intents/listallintents.md): Lists all agent intents. Requires a USER API key.

### Generate intent phrases

 - [POST /public/v1/agents/{agentId}/intents/generate-phrases](https://docs.getfrontline.ai/reference/openapi/intents/generateintentphrases.md): Generates suggested phrases for an intent. Requires a USER API key.

### Get intent

 - [GET /public/v1/agents/{agentId}/intents/{intentId}](https://docs.getfrontline.ai/reference/openapi/intents/getintent.md): Manages a single intent. Requires a USER API key.

### Update intent

 - [PUT /public/v1/agents/{agentId}/intents/{intentId}](https://docs.getfrontline.ai/reference/openapi/intents/updateintent.md): Manages a single intent. Requires a USER API key.

### Delete intent

 - [DELETE /public/v1/agents/{agentId}/intents/{intentId}](https://docs.getfrontline.ai/reference/openapi/intents/deleteintent.md): Manages a single intent. Requires a USER API key.

## Agents

Agent runtime data: conversations and transcripts

### Run an agent (send a message)

 - [POST /public/v1/agents/{agentId}/messages](https://docs.getfrontline.ai/reference/openapi/agents/runagent.md): Sends a message to an agent and returns its reply — the same way the in-app Overview/Playground tests an agent and its flow (runs over the OVERVIEW channel, against the active OR draft flow). Omit message on a new conversation to just open it and run the Start flow; pass conversation_id + message to continue. Requires a USER API key.

### Close an agent conversation

 - [POST /public/v1/agents/{agentId}/conversations/{conversationId}/close](https://docs.getfrontline.ai/reference/openapi/agents/closeagentconversation.md): Closes a conversation (e.g. one started via the run endpoint). Requires a USER API key.

### List agent conversations

 - [GET /public/v1/agents/{agentId}/conversations](https://docs.getfrontline.ai/reference/openapi/agents/listagentconversations.md): Lists conversations for an agent, including the latest rolling summary and linked CRM contact. Supports full-text search (search), channel and feedback filters, and date ranges. Requires a USER API key.

### Get a conversation transcript

 - [GET /public/v1/agents/{agentId}/conversations/{conversationId}](https://docs.getfrontline.ai/reference/openapi/agents/getagentconversation.md): Returns a conversation with its message transcript, latest summary, and linked CRM contact. By default the transcript is clean (user-facing messages only); pass include_events=true for a debug view that adds non-message events (flow enter/exit, triggered intents, tool calls, errors) — each carrying audit_log_id for trace drill-down. Requires a USER API key.

### Get a message's execution trace

 - [GET /public/v1/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/trace](https://docs.getfrontline.ai/reference/openapi/agents/getagentmessagetrace.md): Returns the full LLM/tool execution trace (audit log) for a single message. Look up audit_log_id from the conversation transcript. Requires a USER API key.

## Agent Playbooks

Manage reusable instruction sets assigned to agents

### List agent playbooks

 - [GET /public/v1/playbooks](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/listagentplaybooks.md): Lists reusable agent playbooks (instruction sets) visible to the caller. Requires a USER API key.

### Create agent playbook

 - [POST /public/v1/playbooks](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/createagentplaybook.md): Creates a reusable agent playbook. Requires a USER API key.

### Get agent playbook details

 - [GET /public/v1/playbooks/{playbookId}](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/getagentplaybook.md): Returns an agent playbook by ID. Requires a USER API key.

### Update agent playbook

 - [PUT /public/v1/playbooks/{playbookId}](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/updateagentplaybook.md): Updates an agent playbook. Only the creator (or an OWNER/ADMIN) can update it. Requires a USER API key.

### Delete agent playbook

 - [DELETE /public/v1/playbooks/{playbookId}](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/deleteagentplaybook.md): Deletes an agent playbook. Only the creator can delete it. Requires a USER API key.

### List playbooks assigned to an agent

 - [GET /public/v1/agents/{agentId}/playbooks](https://docs.getfrontline.ai/reference/openapi/agent-playbooks/listassignedagentplaybooks.md): Lists playbooks assigned to a specific agent. Requires a USER API key.

## Workflows

View and manage your workflows across your account

### List all workflows

 - [GET /public/v1/workflows](https://docs.getfrontline.ai/reference/openapi/workflows/listworkflows.md): Returns a list of workflows associated with the account. Nodes and logic are excluded.

### Create a workflow

 - [POST /public/v1/workflows](https://docs.getfrontline.ai/reference/openapi/workflows/createworkflow.md): Creates an automation workflow and an empty graph snapshot.

### Get workflow details

 - [GET /public/v1/workflows/{workflowId}](https://docs.getfrontline.ai/reference/openapi/workflows/getworkflow.md): Returns a workflow automation. Pass includeNodes=true to include graph nodes.

### Update workflow

 - [PUT /public/v1/workflows/{workflowId}](https://docs.getfrontline.ai/reference/openapi/workflows/updateworkflow.md): Updates workflow metadata or status.

### Delete workflow

 - [DELETE /public/v1/workflows/{workflowId}](https://docs.getfrontline.ai/reference/openapi/workflows/deleteworkflow.md): Soft deletes a workflow automation and cleans up trigger side effects.

### Get workflow graph

 - [GET /public/v1/workflows/{workflowId}/graph](https://docs.getfrontline.ai/reference/openapi/workflows/getworkflowgraph.md): Returns the workflow snapshot with nodes and edges.

### Run workflow

 - [POST /public/v1/workflows/{workflowId}/run](https://docs.getfrontline.ai/reference/openapi/workflows/runworkflow.md): Manually triggers a scheduled (SCHEDULED_TRIGGER) workflow automation by enqueueing an execution. Only available for ACTIVE scheduled workflows; event-triggered workflows run from their trigger.

### Create workflow node

 - [POST /public/v1/workflows/{workflowId}/nodes](https://docs.getfrontline.ai/reference/openapi/workflows/createworkflownode.md): Creates a node in an automation workflow graph. The server assigns nodeId and alias; use the 201 response when adding edges or updates.

### Update workflow node

 - [PUT /public/v1/workflows/{workflowId}/nodes/{nodeId}](https://docs.getfrontline.ai/reference/openapi/workflows/updateworkflownode.md): Updates a node and returns the updated workflow graph.

### Delete workflow node

 - [DELETE /public/v1/workflows/{workflowId}/nodes/{nodeId}](https://docs.getfrontline.ai/reference/openapi/workflows/deleteworkflownode.md): Deletes a node and removes all incoming and outgoing edges.

### Create workflow edge

 - [POST /public/v1/workflows/{workflowId}/edges](https://docs.getfrontline.ai/reference/openapi/workflows/createworkflowedge.md): Adds or replaces the outgoing edge for a node.

### Delete workflow edge

 - [DELETE /public/v1/workflows/{workflowId}/edges](https://docs.getfrontline.ai/reference/openapi/workflows/deleteworkflowedge.md): Removes an edge from the workflow graph.

### Get workflow analytics

 - [GET /public/v1/workflows/{workflowId}/analytics](https://docs.getfrontline.ai/reference/openapi/workflows/getworkflowanalytics.md): Returns analytics for a specific workflow, including runs by date and summary.

### List workflow run logs

 - [GET /public/v1/workflows/{workflowId}/logs](https://docs.getfrontline.ai/reference/openapi/workflows/listworkflowlogs.md): Lists the run history (executions) of a workflow. Requires a USER API key.

### Get a workflow run log

 - [GET /public/v1/workflows/{workflowId}/logs/{logId}](https://docs.getfrontline.ai/reference/openapi/workflows/getworkflowlog.md): Returns one run with its per-node results. Requires a USER API key.

### Get a node's execution trace

 - [GET /public/v1/workflows/{workflowId}/logs/{logId}/nodes/{nodeResultId}/trace](https://docs.getfrontline.ai/reference/openapi/workflows/getworkflownodetrace.md): Returns the full execution trace (audit log) for a single node within a run. Look up the node-result id and audit_log_id from the run log. Requires a USER API key.

## Workflow Variables

Manage variables scoped to an automation workflow

### List workflow variables

 - [GET /public/v1/workflows/{workflowId}/variables](https://docs.getfrontline.ai/reference/openapi/workflow-variables/listworkflowvariables.md): Lists variables for an automation workflow. Requires a USER API key.

### Create workflow variable

 - [POST /public/v1/workflows/{workflowId}/variables](https://docs.getfrontline.ai/reference/openapi/workflow-variables/createworkflowvariable.md): Creates a variable for an automation workflow. Requires a USER API key.

### List all workflow variables

 - [GET /public/v1/workflows/{workflowId}/variables/all](https://docs.getfrontline.ai/reference/openapi/workflow-variables/listallworkflowvariables.md): Lists all workflow variables including defaults. Requires a USER API key.

### Check workflow variable name

 - [GET /public/v1/workflows/{workflowId}/variables/check-name](https://docs.getfrontline.ai/reference/openapi/workflow-variables/checkworkflowvariablename.md): Checks whether a variable name exists for a workflow. Requires a USER API key.

### Get workflow variable

 - [GET /public/v1/workflows/{workflowId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/workflow-variables/getworkflowvariable.md): Manages a single workflow variable. Requires a USER API key.

### Update workflow variable

 - [PUT /public/v1/workflows/{workflowId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/workflow-variables/updateworkflowvariable.md): Manages a single workflow variable. Requires a USER API key.

### Delete workflow variable

 - [DELETE /public/v1/workflows/{workflowId}/variables/{variableId}](https://docs.getfrontline.ai/reference/openapi/workflow-variables/deleteworkflowvariable.md): Manages a single workflow variable. Requires a USER API key.

## Objects

Manage CRM objects (standard and custom)

### List objects

 - [GET /public/v1/objects](https://docs.getfrontline.ai/reference/openapi/objects/listobjects.md): Returns every object (standard + custom) for the authenticated account.

### Create object

 - [POST /public/v1/objects](https://docs.getfrontline.ai/reference/openapi/objects/createobject.md): Creates a custom object. At least one column is required. Requires a USER API key.

### Get object

 - [GET /public/v1/objects/{name}](https://docs.getfrontline.ai/reference/openapi/objects/getobject.md): Returns one object including fields, views, and record types.

### Update object

 - [PATCH /public/v1/objects/{name}](https://docs.getfrontline.ai/reference/openapi/objects/updateobject.md): Updates an object's display name, emoji, color, or description. Requires a USER API key with ADMIN or OWNER role.

### Delete object

 - [DELETE /public/v1/objects/{name}](https://docs.getfrontline.ai/reference/openapi/objects/deleteobject.md): Deletes a custom object. System objects cannot be deleted. Requires a USER API key with ADMIN or OWNER role.

### Get object schema

 - [GET /public/v1/objects/{name}/schema](https://docs.getfrontline.ai/reference/openapi/objects/getobjectschema.md): Returns only the schema (fields, types, formats) for an object.

## Object fields

Manage columns on an object

### List object fields

 - [GET /public/v1/objects/{name}/fields](https://docs.getfrontline.ai/reference/openapi/object-fields/listobjectfields.md): Returns the columns defined on an object.

### Create object field

 - [POST /public/v1/objects/{name}/fields](https://docs.getfrontline.ai/reference/openapi/object-fields/createobjectfield.md): Creates a column on an object. Requires a USER API key with ADMIN or OWNER role.

### Update object field

 - [PATCH /public/v1/objects/{name}/fields/{fieldId}](https://docs.getfrontline.ai/reference/openapi/object-fields/updateobjectfield.md): Updates a field's metadata, defaults, or ordering. Requires a USER API key with ADMIN or OWNER role.

### Delete object field

 - [DELETE /public/v1/objects/{name}/fields/{fieldId}](https://docs.getfrontline.ai/reference/openapi/object-fields/deleteobjectfield.md): Deletes a column from an object. Requires a USER API key with ADMIN or OWNER role.

### Get object field formula dependencies

 - [GET /public/v1/objects/{name}/fields/{fieldId}/formula-dependencies](https://docs.getfrontline.ai/reference/openapi/object-fields/getobjectfieldformuladependencies.md): Returns the formula dependencies for a specific field. Requires a USER API key with ADMIN or OWNER role.

### Preview formula evaluation

 - [POST /public/v1/objects/{name}/fields/preview-formula](https://docs.getfrontline.ai/reference/openapi/object-fields/previewobjectformula.md): Previews formula evaluation on existing data. Requires a USER API key with ADMIN or OWNER role.

## Object options

Manage tag/select options on object fields

### List field options

 - [GET /public/v1/objects/{name}/fields/{fieldId}/options](https://docs.getfrontline.ai/reference/openapi/object-options/listobjectfieldoptions.md): Returns the options (tags) defined on a select/tags field.

### Create field option

 - [POST /public/v1/objects/{name}/fields/{fieldId}/options](https://docs.getfrontline.ai/reference/openapi/object-options/createobjectfieldoption.md): Adds an option (tag) to a select/tags field. Requires a USER API key with ADMIN or OWNER role.

### Update field option

 - [PATCH /public/v1/objects/{name}/options/{tagId}](https://docs.getfrontline.ai/reference/openapi/object-options/updateobjectfieldoption.md): Updates an option's name, color, or order. Requires a USER API key with ADMIN or OWNER role.

### Delete field option

 - [DELETE /public/v1/objects/{name}/options/{tagId}](https://docs.getfrontline.ai/reference/openapi/object-options/deleteobjectfieldoption.md): Deletes an option from a select/tags field. Requires a USER API key with ADMIN or OWNER role.

## Object record types

Categorize records inside an object

### List record types

 - [GET /public/v1/objects/{name}/record-types](https://docs.getfrontline.ai/reference/openapi/object-record-types/listobjectrecordtypes.md): Returns the record types defined on an object.

### Create record type

 - [POST /public/v1/objects/{name}/record-types](https://docs.getfrontline.ai/reference/openapi/object-record-types/createobjectrecordtype.md): Creates a record type on an object. Record types are an object-only feature; tables always keep the single implicit record type they are created with. Requires a USER API key with ADMIN or OWNER role.

### Update record type

 - [PATCH /public/v1/objects/{name}/record-types/{recordTypeId}](https://docs.getfrontline.ai/reference/openapi/object-record-types/updateobjectrecordtype.md): Updates a record type. The default record type's name and display name cannot be changed (promote another record type to default first). Requires a USER API key with ADMIN or OWNER role.

### Delete record type

 - [DELETE /public/v1/objects/{name}/record-types/{recordTypeId}](https://docs.getfrontline.ai/reference/openapi/object-record-types/deleteobjectrecordtype.md): Deletes a record type. The default record type cannot be deleted. Requires a USER API key with ADMIN or OWNER role.

### Get record type security

 - [GET /public/v1/objects/{name}/record-types/{recordTypeId}/security](https://docs.getfrontline.ai/reference/openapi/object-record-types/getobjectrecordtypesecurity.md): Returns the record-level security (RLS) configuration for a record type, including the workspace default for new records. If no config has been saved yet, returns in-memory defaults (enabled: false, auto-detected Users column if present). Requires a USER API key with ADMIN or OWNER role.

### Update record type security

 - [PATCH /public/v1/objects/{name}/record-types/{recordTypeId}/security](https://docs.getfrontline.ai/reference/openapi/object-record-types/updateobjectrecordtypesecurity.md): Updates record-level security (RLS) for a record type. virtual_owner_column_ids must reference User-relation fields assigned to the record type. workspace sets the default access for new records (FULL_ACCESS, READ_ONLY, NO_ACCESS). Unknown body keys return 400. Requires a USER API key with ADMIN or OWNER role.

## Object views

Saved view configurations on an object

### List views

 - [GET /public/v1/objects/{name}/views](https://docs.getfrontline.ai/reference/openapi/object-views/listobjectviews.md): Returns the saved views configured on an object. Optionally filter by record_type_id and shared (shared=true returns only shared/system views).

### Create view

 - [POST /public/v1/objects/{name}/views](https://docs.getfrontline.ai/reference/openapi/object-views/createobjectview.md): Creates a saved view on an object. Requires a USER API key.

### Create record-type-scoped view

 - [POST /public/v1/objects/record-types/{recordTypeId}/views](https://docs.getfrontline.ai/reference/openapi/object-views/createobjectrecordtypeview.md): Creates a saved view scoped to a record type. Requires a USER API key.

### Update view

 - [PATCH /public/v1/objects/{name}/views/{viewId}](https://docs.getfrontline.ai/reference/openapi/object-views/updateobjectview.md): Updates a saved view. Requires a USER API key.

### Delete view

 - [DELETE /public/v1/objects/{name}/views/{viewId}](https://docs.getfrontline.ai/reference/openapi/object-views/deleteobjectview.md): Deletes a saved view. Requires a USER API key.

### Update record-type-scoped view

 - [PATCH /public/v1/objects/record-types/{recordTypeId}/views/{viewId}](https://docs.getfrontline.ai/reference/openapi/object-views/updateobjectrecordtypeview.md): Updates a saved view that is scoped to a record type. Requires a USER API key.

### Delete record-type-scoped view

 - [DELETE /public/v1/objects/record-types/{recordTypeId}/views/{viewId}](https://docs.getfrontline.ai/reference/openapi/object-views/deleteobjectrecordtypeview.md): Deletes a record-type-scoped view. Requires a USER API key.

## Object relations

Link and unlink records across objects

### List related rows

 - [GET /public/v1/objects/{name}/rows/{id}/relations/{relation}](https://docs.getfrontline.ai/reference/openapi/object-relations/listobjectrelations.md): Returns rows linked to this row via the given relation field.

### Find rows by relation target

 - [GET /public/v1/objects/{name}/relations/{relation}/target/{targetId}](https://docs.getfrontline.ai/reference/openapi/object-relations/findobjectbyrelation.md): Returns rows on the source object linked to the target id via the relation.

### Link relation

 - [POST /public/v1/objects/{name}/rows/{id}/relations/{relation}/link](https://docs.getfrontline.ai/reference/openapi/object-relations/linkobjectrelation.md): Links the target row to this row via the relation. Requires a USER API key.

### Unlink relation

 - [POST /public/v1/objects/{name}/rows/{id}/relations/{relation}/unlink](https://docs.getfrontline.ai/reference/openapi/object-relations/unlinkobjectrelation.md): Unlinks the target row from this row's relation. Requires a USER API key.

## Object rows

Read and write object records

### List rows

 - [POST /public/v1/objects/{name}/rows/list](https://docs.getfrontline.ai/reference/openapi/object-rows/listobjectrows.md): Returns a paginated, filterable list of rows.

### Create row

 - [POST /public/v1/objects/{name}/rows](https://docs.getfrontline.ai/reference/openapi/object-rows/createobjectrow.md): Creates a single row. Requires a USER API key.

### Bulk-create rows

 - [POST /public/v1/objects/{name}/rows/bulk](https://docs.getfrontline.ai/reference/openapi/object-rows/createobjectrowsbulk.md): Creates multiple rows in a single call. Requires a USER API key.

### Get row

 - [GET /public/v1/objects/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/object-rows/getobjectrow.md): Returns a single row by id.

### Update row

 - [PATCH /public/v1/objects/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/object-rows/updateobjectrow.md): Updates a row's fields. Pass field values flat in the body or nested under data. Requires a USER API key.

### Delete row

 - [DELETE /public/v1/objects/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/object-rows/deleteobjectrow.md): Deletes a row. Requires a USER API key.

### Count rows

 - [POST /public/v1/objects/{name}/rows/count](https://docs.getfrontline.ai/reference/openapi/object-rows/countobjectrows.md): Returns the number of rows matching the optional query and record type filter.

## Object aggregations

Per-view aggregations on objects

### List aggregations

 - [GET /public/v1/objects/{name}/views/{viewId}/aggregations](https://docs.getfrontline.ai/reference/openapi/object-aggregations/listobjectaggregations.md): Returns aggregations configured for a view.

### Create aggregation

 - [POST /public/v1/objects/{name}/views/{viewId}/aggregations](https://docs.getfrontline.ai/reference/openapi/object-aggregations/createobjectaggregation.md): Creates an aggregation on a column for the given view. Requires a USER API key.

### Update aggregation

 - [PATCH /public/v1/objects/{name}/views/{viewId}/aggregations/{aggId}](https://docs.getfrontline.ai/reference/openapi/object-aggregations/updateobjectaggregation.md): Changes the operation of an aggregation. Requires a USER API key.

### Delete aggregation

 - [DELETE /public/v1/objects/{name}/views/{viewId}/aggregations/{aggId}](https://docs.getfrontline.ai/reference/openapi/object-aggregations/deleteobjectaggregation.md): Removes an aggregation from a view. Requires a USER API key.

### Compute aggregations

 - [POST /public/v1/objects/{name}/views/{viewId}/aggregations/compute](https://docs.getfrontline.ai/reference/openapi/object-aggregations/computeobjectaggregations.md): Computes the configured aggregations for the rows matching the query.

## Object activities

Manual activities (notes, calls, meetings, emails) attached to object rows

### List activities

 - [GET /public/v1/objects/{name}/rows/{rowId}/activities](https://docs.getfrontline.ai/reference/openapi/object-activities/listobjectactivities.md): Returns manually-created activities attached to a row. Activities log interactions like notes, calls, meetings, and emails.

### Create activity

 - [POST /public/v1/objects/{name}/rows/{rowId}/activities](https://docs.getfrontline.ai/reference/openapi/object-activities/createobjectactivity.md): Attaches a manual activity to a row. Use type to categorize it (NOTE, PHONE_CALL, MEETING, EMAIL, WHATSAPP). Requires a USER API key.

### Get activity

 - [GET /public/v1/objects/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/object-activities/getobjectactivity.md): Returns an activity by id.

### Update activity

 - [PATCH /public/v1/objects/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/object-activities/updateobjectactivity.md): Updates an activity. Requires a USER API key.

### Delete activity

 - [DELETE /public/v1/objects/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/object-activities/deleteobjectactivity.md): Deletes a manually-created activity. Only the owner or an account admin can delete. Auto-generated activities (email sync, conversation audit, etc.) cannot be deleted. Requires a USER API key.

## Object tasks

Tasks attached to object rows

### List tasks

 - [GET /public/v1/objects/{name}/rows/{rowId}/tasks](https://docs.getfrontline.ai/reference/openapi/object-tasks/listobjecttasks.md): Returns tasks attached to a row.

### Create task

 - [POST /public/v1/objects/{name}/rows/{rowId}/tasks](https://docs.getfrontline.ai/reference/openapi/object-tasks/createobjecttask.md): Attaches a task to a row. Requires a USER API key.

### Get task

 - [GET /public/v1/objects/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/object-tasks/getobjecttask.md): Returns a task by id.

### Update task

 - [PATCH /public/v1/objects/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/object-tasks/updateobjecttask.md): Updates a task's content, due date, or assignees. Requires a USER API key.

### Delete task

 - [DELETE /public/v1/objects/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/object-tasks/deleteobjecttask.md): Deletes a task. Requires a USER API key.

### Complete task

 - [POST /public/v1/objects/{name}/tasks/{id}/complete](https://docs.getfrontline.ai/reference/openapi/object-tasks/completeobjecttask.md): Marks a task as completed. Requires a USER API key.

### Uncomplete task

 - [POST /public/v1/objects/{name}/tasks/{id}/uncomplete](https://docs.getfrontline.ai/reference/openapi/object-tasks/uncompleteobjecttask.md): Marks a previously completed task as open again. Requires a USER API key.

## Object files

Files attached to object rows

### List files

 - [GET /public/v1/objects/{name}/rows/{rowId}/files](https://docs.getfrontline.ai/reference/openapi/object-files/listobjectfiles.md): Returns the files attached to a row.

### Upload files

 - [POST /public/v1/objects/{name}/rows/{rowId}/files](https://docs.getfrontline.ai/reference/openapi/object-files/uploadobjectfiles.md): Uploads one or more files to a row as multipart/form-data under the files field. Requires a USER API key.

### Get file

 - [GET /public/v1/objects/{name}/files/{id}](https://docs.getfrontline.ai/reference/openapi/object-files/getobjectfile.md): Returns file metadata.

### Delete file

 - [DELETE /public/v1/objects/{name}/files/{id}](https://docs.getfrontline.ai/reference/openapi/object-files/deleteobjectfile.md): Deletes a file from a row. Requires a USER API key.

### Download file

 - [GET /public/v1/objects/{name}/files/{id}/download](https://docs.getfrontline.ai/reference/openapi/object-files/downloadobjectfile.md): Streams the file content. Returns the file binary; not a JSON envelope.

## Object export

Export object data as XLSX or CSV

### Export as XLSX

 - [POST /public/v1/objects/{name}/export/xlsx](https://docs.getfrontline.ai/reference/openapi/object-export/exportobjectxlsx.md): Exports rows matching the query as an XLSX file.

### Export as CSV

 - [POST /public/v1/objects/{name}/export/csv](https://docs.getfrontline.ai/reference/openapi/object-export/exportobjectcsv.md): Exports rows matching the query as CSV.

## Tables

Manage spreadsheet-style tables

### List tables

 - [GET /public/v1/tables](https://docs.getfrontline.ai/reference/openapi/tables/listtables.md): Returns every table for the authenticated account.

### Create table

 - [POST /public/v1/tables](https://docs.getfrontline.ai/reference/openapi/tables/createtable.md): Creates a table. Columns can be supplied at creation or added later. Requires a USER API key.

### Get table

 - [GET /public/v1/tables/{name}](https://docs.getfrontline.ai/reference/openapi/tables/gettable.md): Returns one table including fields and views.

### Update table

 - [PATCH /public/v1/tables/{name}](https://docs.getfrontline.ai/reference/openapi/tables/updatetable.md): Updates display name, emoji, color, or description. Requires a USER API key with edit access to the table (admins/owners, the table's creator, or FULL_ACCESS sharing).

### Delete table

 - [DELETE /public/v1/tables/{name}](https://docs.getfrontline.ai/reference/openapi/tables/deletetable.md): Deletes a table. Requires a USER API key with delete access to the table (admins/owners, the table's creator, or FULL_ACCESS sharing).

### Get table schema

 - [GET /public/v1/tables/{name}/schema](https://docs.getfrontline.ai/reference/openapi/tables/gettableschema.md): Returns only the schema (fields, types, formats) for a table.

## Table fields

Manage columns on a table

### List table fields

 - [GET /public/v1/tables/{name}/fields](https://docs.getfrontline.ai/reference/openapi/table-fields/listtablefields.md): Returns the columns defined on a table.

### Create table field

 - [POST /public/v1/tables/{name}/fields](https://docs.getfrontline.ai/reference/openapi/table-fields/createtablefield.md): Creates a column on a table. Requires a USER API key with edit access to the table (FULL_ACCESS sharing); read-only access is not enough.

### Update table field

 - [PATCH /public/v1/tables/{name}/fields/{fieldId}](https://docs.getfrontline.ai/reference/openapi/table-fields/updatetablefield.md): Updates a field's metadata, defaults, or ordering. Requires a USER API key with edit access to the table (FULL_ACCESS sharing); read-only access is not enough.

### Delete table field

 - [DELETE /public/v1/tables/{name}/fields/{fieldId}](https://docs.getfrontline.ai/reference/openapi/table-fields/deletetablefield.md): Deletes a column from a table. Requires a USER API key with edit access to the table (FULL_ACCESS sharing); read-only access is not enough.

### Get table field formula dependencies

 - [GET /public/v1/tables/{name}/fields/{fieldId}/formula-dependencies](https://docs.getfrontline.ai/reference/openapi/table-fields/gettablefieldformuladependencies.md): Returns the formula dependencies for a specific field. Requires a USER API key with edit access to the table.

### Preview formula evaluation

 - [POST /public/v1/tables/{name}/fields/preview-formula](https://docs.getfrontline.ai/reference/openapi/table-fields/previewtableformula.md): Previews formula evaluation on existing data. Requires a USER API key with edit access to the table.

## Table options

Manage tag/select options on table fields

### List field options

 - [GET /public/v1/tables/{name}/fields/{fieldId}/tags](https://docs.getfrontline.ai/reference/openapi/table-options/listtablefieldoptions.md): Returns the options (tags) defined on a select/tags field.

### Create field option

 - [POST /public/v1/tables/{name}/fields/{fieldId}/tags](https://docs.getfrontline.ai/reference/openapi/table-options/createtablefieldoption.md): Adds an option (tag) to a select/tags field. Requires a USER API key with edit access to the table.

### Update field option

 - [PATCH /public/v1/tables/{name}/tags/{tagId}](https://docs.getfrontline.ai/reference/openapi/table-options/updatetablefieldoption.md): Updates an option's name, color, or order. Requires a USER API key with edit access to the table.

### Delete field option

 - [DELETE /public/v1/tables/{name}/tags/{tagId}](https://docs.getfrontline.ai/reference/openapi/table-options/deletetablefieldoption.md): Deletes an option from a select/tags field. Requires a USER API key with edit access to the table.

## Table rows

Read and write table rows

### List rows

 - [POST /public/v1/tables/{name}/rows/list](https://docs.getfrontline.ai/reference/openapi/table-rows/listtablerows.md): Returns a paginated, filterable list of rows.

### Create row

 - [POST /public/v1/tables/{name}/rows](https://docs.getfrontline.ai/reference/openapi/table-rows/createtablerow.md): Creates a single row. Requires a USER API key.

### Bulk-create rows

 - [POST /public/v1/tables/{name}/rows/bulk](https://docs.getfrontline.ai/reference/openapi/table-rows/createtablerowsbulk.md): Creates multiple rows in a single call. Requires a USER API key.

### Get row

 - [GET /public/v1/tables/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/table-rows/gettablerow.md): Returns a single row by id.

### Update row

 - [PATCH /public/v1/tables/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/table-rows/updatetablerow.md): Updates a row's fields. Pass field values flat in the body or nested under data. Requires a USER API key.

### Delete row

 - [DELETE /public/v1/tables/{name}/rows/{id}](https://docs.getfrontline.ai/reference/openapi/table-rows/deletetablerow.md): Deletes a row. Requires a USER API key.

### Count rows

 - [POST /public/v1/tables/{name}/rows/count](https://docs.getfrontline.ai/reference/openapi/table-rows/counttablerows.md): Returns the number of rows matching the optional query.

## Table aggregations

Per-view aggregations on tables

### List aggregations

 - [GET /public/v1/tables/{name}/views/{viewId}/aggregations](https://docs.getfrontline.ai/reference/openapi/table-aggregations/listtableaggregations.md): Returns aggregations configured for a view.

### Create aggregation

 - [POST /public/v1/tables/{name}/views/{viewId}/aggregations](https://docs.getfrontline.ai/reference/openapi/table-aggregations/createtableaggregation.md): Creates an aggregation on a column for the given view. Requires a USER API key.

### Update aggregation

 - [PATCH /public/v1/tables/{name}/views/{viewId}/aggregations/{aggId}](https://docs.getfrontline.ai/reference/openapi/table-aggregations/updatetableaggregation.md): Changes the operation of an aggregation. Requires a USER API key.

### Delete aggregation

 - [DELETE /public/v1/tables/{name}/views/{viewId}/aggregations/{aggId}](https://docs.getfrontline.ai/reference/openapi/table-aggregations/deletetableaggregation.md): Removes an aggregation from a view. Requires a USER API key.

### Compute aggregations

 - [POST /public/v1/tables/{name}/views/{viewId}/aggregations/compute](https://docs.getfrontline.ai/reference/openapi/table-aggregations/computetableaggregations.md): Computes the configured aggregations for the rows matching the query.

## Table activities

Manual activities (notes, calls, meetings, emails) attached to table rows

### List activities

 - [GET /public/v1/tables/{name}/rows/{rowId}/activities](https://docs.getfrontline.ai/reference/openapi/table-activities/listtableactivities.md): Returns manually-created activities attached to a row. Activities log interactions like notes, calls, meetings, and emails.

### Create activity

 - [POST /public/v1/tables/{name}/rows/{rowId}/activities](https://docs.getfrontline.ai/reference/openapi/table-activities/createtableactivity.md): Attaches a manual activity to a row. Use type to categorize it (NOTE, PHONE_CALL, MEETING, EMAIL, WHATSAPP). Requires a USER API key.

### Get activity

 - [GET /public/v1/tables/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/table-activities/gettableactivity.md): Returns an activity by id.

### Update activity

 - [PATCH /public/v1/tables/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/table-activities/updatetableactivity.md): Updates an activity. Requires a USER API key.

### Delete activity

 - [DELETE /public/v1/tables/{name}/activities/{id}](https://docs.getfrontline.ai/reference/openapi/table-activities/deletetableactivity.md): Deletes a manually-created activity. Only the owner or an account admin can delete. Auto-generated activities cannot be deleted. Requires a USER API key.

## Table tasks

Tasks attached to table rows

### List tasks

 - [GET /public/v1/tables/{name}/rows/{rowId}/tasks](https://docs.getfrontline.ai/reference/openapi/table-tasks/listtabletasks.md): Returns tasks attached to a row.

### Create task

 - [POST /public/v1/tables/{name}/rows/{rowId}/tasks](https://docs.getfrontline.ai/reference/openapi/table-tasks/createtabletask.md): Attaches a task to a row. Requires a USER API key.

### Get task

 - [GET /public/v1/tables/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/table-tasks/gettabletask.md): Returns a task by id.

### Update task

 - [PATCH /public/v1/tables/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/table-tasks/updatetabletask.md): Updates a task's content, due date, or assignees. Requires a USER API key.

### Delete task

 - [DELETE /public/v1/tables/{name}/tasks/{id}](https://docs.getfrontline.ai/reference/openapi/table-tasks/deletetabletask.md): Deletes a task. Requires a USER API key.

### Complete task

 - [POST /public/v1/tables/{name}/tasks/{id}/complete](https://docs.getfrontline.ai/reference/openapi/table-tasks/completetabletask.md): Marks a task as completed. Requires a USER API key.

### Uncomplete task

 - [POST /public/v1/tables/{name}/tasks/{id}/uncomplete](https://docs.getfrontline.ai/reference/openapi/table-tasks/uncompletetabletask.md): Marks a previously completed task as open again. Requires a USER API key.

## Table files

Files attached to table rows

### List files

 - [GET /public/v1/tables/{name}/rows/{rowId}/files](https://docs.getfrontline.ai/reference/openapi/table-files/listtablefiles.md): Returns the files attached to a row.

### Upload files

 - [POST /public/v1/tables/{name}/rows/{rowId}/files](https://docs.getfrontline.ai/reference/openapi/table-files/uploadtablefiles.md): Uploads one or more files to a row as multipart/form-data under the files field. Requires a USER API key.

### Get file

 - [GET /public/v1/tables/{name}/files/{id}](https://docs.getfrontline.ai/reference/openapi/table-files/gettablefile.md): Returns file metadata.

### Delete file

 - [DELETE /public/v1/tables/{name}/files/{id}](https://docs.getfrontline.ai/reference/openapi/table-files/deletetablefile.md): Deletes a file from a row. Requires a USER API key.

### Download file

 - [GET /public/v1/tables/{name}/files/{id}/download](https://docs.getfrontline.ai/reference/openapi/table-files/downloadtablefile.md): Streams the file content. Returns the file binary; not a JSON envelope.

## Table export

Export table data as XLSX or CSV

### Export as XLSX

 - [POST /public/v1/tables/{name}/export/xlsx](https://docs.getfrontline.ai/reference/openapi/table-export/exporttablexlsx.md): Exports rows matching the query as an XLSX file.

### Export as CSV

 - [POST /public/v1/tables/{name}/export/csv](https://docs.getfrontline.ai/reference/openapi/table-export/exporttablecsv.md): Exports rows matching the query as CSV.

## Channels

Communication channels connected to this account (WhatsApp, Instagram, Messenger)

### List approved WhatsApp templates

 - [GET /public/v1/channels/whatsapp/templates](https://docs.getfrontline.ai/reference/openapi/channels/listchannelwhatsapptemplates.md): Read-only list of APPROVED WhatsApp message templates from Meta for this account's WhatsApp Business channel. Use template.name in SEND_WHATSAPP_MESSAGE nodes and map parameters into templateVariables.

## Custom Tools

Manage custom tools — reusable HTTP/API-call integrations the account creates and assigns to agents, flows, and workflows. Distinct from built-in system tools and connected-integration (MCP) tools.

### List custom tools

 - [GET /public/v1/tools](https://docs.getfrontline.ai/reference/openapi/custom-tools/listtools.md): Returns the account's custom tools (API call tools created by the account). WhatsApp template tools are not exposed in this public surface.

### Create a custom tool

 - [POST /public/v1/tools](https://docs.getfrontline.ai/reference/openapi/custom-tools/createtool.md): Creates a custom tool (an API call tool). Requires a USER API key. WhatsApp template tools are not supported in the public API.

### Get custom tool details

 - [GET /public/v1/tools/{toolId}](https://docs.getfrontline.ai/reference/openapi/custom-tools/gettool.md): Returns a custom tool (API call tool) by ID.

### Update a custom tool

 - [PUT /public/v1/tools/{toolId}](https://docs.getfrontline.ai/reference/openapi/custom-tools/updatetool.md): Updates a custom tool (API call tool). Requires a USER API key. The tool type cannot be changed.

### Delete a custom tool

 - [DELETE /public/v1/tools/{toolId}](https://docs.getfrontline.ai/reference/openapi/custom-tools/deletetool.md): Soft deletes a custom tool (API call tool). Requires a USER API key.

### Test a tool

 - [POST /public/v1/tools/{toolId}/test](https://docs.getfrontline.ai/reference/openapi/custom-tools/testtool.md): Executes a persisted API call tool with the provided argument values and returns the HTTP response. Requires a USER API key.

## Incoming Webhooks

Inbound HTTPS endpoints that external systems can post events to

### List incoming webhooks

 - [GET /public/v1/incoming-webhooks](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/listincomingwebhooks.md): Lists incoming webhooks for the authenticated account. Filter by search text and active status. Requires a USER API key.

### Create an incoming webhook

 - [POST /public/v1/incoming-webhooks](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/createincomingwebhook.md): Creates an incoming webhook for the authenticated account. Requires a USER API key and returns the access token needed to call the webhook.

### Get incoming webhook details

 - [GET /public/v1/incoming-webhooks/{webhookId}](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/getincomingwebhook.md): Returns an incoming webhook by ID. Requires a USER API key.

### Update incoming webhook

 - [PUT /public/v1/incoming-webhooks/{webhookId}](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/updateincomingwebhook.md): Updates an incoming webhook's name, description, active state, or authentication toggle. Requires a USER API key.

### Delete incoming webhook

 - [DELETE /public/v1/incoming-webhooks/{webhookId}](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/deleteincomingwebhook.md): Deletes an incoming webhook. Requires a USER API key.

### Regenerate incoming webhook access token

 - [POST /public/v1/incoming-webhooks/{webhookId}/regenerate-access-token](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/regenerateincomingwebhookaccesstoken.md): Generates a new bearer access token for the webhook, invalidating the previous one. The new token is returned in the response. Requires a USER API key.

### List incoming webhook events

 - [GET /public/v1/incoming-webhooks/{webhookId}/events](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/listincomingwebhookevents.md): Lists received events (deliveries) for an incoming webhook. Filter by date range, status, and search. Requires a USER API key.

### Get incoming webhook event details

 - [GET /public/v1/incoming-webhooks/{webhookId}/events/{eventId}](https://docs.getfrontline.ai/reference/openapi/incoming-webhooks/getincomingwebhookevent.md): Returns a single webhook event, including the automations it triggered. Requires a USER API key.

## Account Integrations

View account-scoped (Studio) connected integrations, discover connectable toolkits, and configure which tools each integration exposes to agents, flows, and workflows. These are used for workflows and agents, separate from Max integrations.

### List connectable toolkits

 - [GET /public/v1/integrations/toolkits](https://docs.getfrontline.ai/reference/openapi/account-integrations/listintegrationtoolkits.md): Lists the catalog of toolkits that can be connected, with each toolkit's auth scheme and the tool slugs it supports. Use this to discover valid toolkit values and the tool slugs accepted by the update-tools endpoint. Requires a USER API key.

### Get account integration details

 - [GET /public/v1/integrations/{integrationId}](https://docs.getfrontline.ai/reference/openapi/account-integrations/getaccountintegration.md): Returns a single account integration by ID. Requires a USER API key.

### Update account integration

 - [PATCH /public/v1/integrations/{integrationId}](https://docs.getfrontline.ai/reference/openapi/account-integrations/updateaccountintegration.md): Updates an integration's alias and/or visibility (SHARED or PRIVATE). Only the creator, an admin, or an owner may update. Requires a USER API key.

### List integration tools

 - [GET /public/v1/integrations/{integrationId}/tools](https://docs.getfrontline.ai/reference/openapi/account-integrations/getaccountintegrationtools.md): Returns the integration's tools split into enabled and available, including whether the connected account holds the OAuth scopes each tool requires. Use the tool slug values with the update-tools endpoint. Requires a USER API key.

### Set integration allowed tools

 - [PUT /public/v1/integrations/{integrationId}/tools](https://docs.getfrontline.ai/reference/openapi/account-integrations/setaccountintegrationtools.md): Replaces the integration's enabled tool slugs with the provided list. Slugs must belong to the integration's toolkit. Only the creator, an admin, or an owner may update. Requires a USER API key.

## Agent Channels

View connected channel integrations (WhatsApp, Instagram, Messenger) and bind numbers/accounts/pages to agents

### List channel integrations

 - [GET /public/v1/channels](https://docs.getfrontline.ai/reference/openapi/agent-channels/listchannelintegrations.md): Returns the account's connected channel integrations (WhatsApp, Instagram, Messenger) and which agent each number/account/page is bound to. Connecting a channel requires the OAuth flow in the app and is not available via the API. Requires a USER API key.

### Get WhatsApp number business info

 - [GET /public/v1/channels/whatsapp/numbers/{phoneNumberId}/business-info](https://docs.getfrontline.ai/reference/openapi/agent-channels/getwhatsappnumberbusinessinfo.md): Returns the live WhatsApp Business profile (about, address, websites, category) for a connected number. Requires a USER API key.

### Update WhatsApp number (profile + agent)

 - [PUT /public/v1/channels/whatsapp/{integrationId}/numbers/{phoneNumberId}](https://docs.getfrontline.ai/reference/openapi/agent-channels/updatewhatsappnumber.md): Updates a WhatsApp number's business profile and/or binds it to an agent. Pass agentId to bind, null to unbind, or omit to leave the binding unchanged. Requires a USER API key.

### Register WhatsApp number

 - [POST /public/v1/channels/whatsapp/{integrationId}/numbers/{phoneNumberId}/register](https://docs.getfrontline.ai/reference/openapi/agent-channels/registerwhatsappnumber.md): Registers a connected WhatsApp number with Meta (generates a PIN and completes registration). Requires a USER API key.

### Disconnect WhatsApp number

 - [POST /public/v1/channels/whatsapp/{integrationId}/numbers/{phoneNumberId}/disconnect](https://docs.getfrontline.ai/reference/openapi/agent-channels/disconnectwhatsappnumber.md): Disconnects a single WhatsApp number from the integration. Requires a USER API key.

### Assign Instagram account to agent

 - [PUT /public/v1/channels/instagram/accounts/{instagramAccountId}](https://docs.getfrontline.ai/reference/openapi/agent-channels/assigninstagramaccount.md): Binds (or, with null, unbinds) a connected Instagram account to an agent. Requires a USER API key.

### Assign Messenger page to agent

 - [PUT /public/v1/channels/messenger/pages/{messengerPageId}](https://docs.getfrontline.ai/reference/openapi/agent-channels/assignmessengerpage.md): Binds (or, with null, unbinds) a connected Messenger page to an agent. Requires a USER API key.

## Integration Resources

Resolve resource IDs (spreadsheets, docs, drive folders, Asana projects, Salesforce SObjects, Gmail labels, Outlook folders/calendars) needed to configure event triggers. Requires a USER API key.

### List Gmail labels

 - [GET /public/v1/integrations/resources/gmail/labels](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgmaillabelresources.md): Lists Gmail labels for the connected account, to resolve label IDs used in Gmail trigger configs. Requires a USER API key.

### List Google spreadsheets

 - [GET /public/v1/integrations/resources/googlesheets/spreadsheets](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgooglespreadsheetresources.md): Lists Google spreadsheets for the connected account, to resolve a spreadsheet_id for Google Sheets trigger configs. Requires a USER API key.

### List sheets (tabs) in a spreadsheet

 - [GET /public/v1/integrations/resources/googlesheets/spreadsheets/{spreadsheetId}/sheets](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgooglespreadsheetsheetresources.md): Lists the sheets (tabs) within a spreadsheet, to resolve a sheet_name for Google Sheets trigger configs. Requires a USER API key.

### List Google Docs documents

 - [GET /public/v1/integrations/resources/googledocs/documents](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgoogledocumentresources.md): Lists Google Docs documents for the connected account, to resolve a document_id for Google Docs trigger configs. Requires a USER API key.

### List Google Drive shared drives

 - [GET /public/v1/integrations/resources/googledrive/shared-drives](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgoogleshareddriveresources.md): Lists Google Drive shared drives for the connected account, to resolve a drive_id for Google Drive trigger configs. Requires a USER API key.

### List Google Drive folders

 - [GET /public/v1/integrations/resources/googledrive/folders](https://docs.getfrontline.ai/reference/openapi/integration-resources/listgoogledrivefolderresources.md): Lists Google Drive folders for the connected account, to resolve a folder_id for Google Drive trigger configs. Requires a USER API key.

### List Asana workspaces

 - [GET /public/v1/integrations/resources/asana/workspaces](https://docs.getfrontline.ai/reference/openapi/integration-resources/listasanaworkspaceresources.md): Lists Asana workspaces for the connected account, to resolve a workspace_gid for Asana trigger configs. Requires a USER API key.

### List Asana projects in a workspace

 - [GET /public/v1/integrations/resources/asana/workspaces/{workspaceGid}/projects](https://docs.getfrontline.ai/reference/openapi/integration-resources/listasanaprojectresources.md): Lists Asana projects within a workspace, to resolve a project_gid for Asana trigger configs. Requires a USER API key.

### List Salesforce SObjects

 - [GET /public/v1/integrations/resources/salesforce/sobjects](https://docs.getfrontline.ai/reference/openapi/integration-resources/listsalesforcesobjectresources.md): Lists Salesforce SObjects for the connected account, to resolve an sobject_name for Salesforce trigger configs. Requires a USER API key.

### List Salesforce SObject fields

 - [GET /public/v1/integrations/resources/salesforce/sobjects/{sobjectName}/fields](https://docs.getfrontline.ai/reference/openapi/integration-resources/listsalesforcesobjectfieldresources.md): Lists the fields of a Salesforce SObject, to resolve field names for Salesforce trigger configs. Requires a USER API key.

### List Outlook mail folders

 - [GET /public/v1/integrations/resources/outlook/folders](https://docs.getfrontline.ai/reference/openapi/integration-resources/listoutlookfolderresources.md): Lists Outlook mail folders for the connected account, to resolve a folderId for Outlook message trigger configs. Requires a USER API key.

### List Outlook calendars

 - [GET /public/v1/integrations/resources/outlook/calendars](https://docs.getfrontline.ai/reference/openapi/integration-resources/listoutlookcalendarresources.md): Lists Outlook calendars for the connected account, to resolve a calendarId for Outlook event trigger configs. Requires a USER API key.

## Knowledge Bases

Manage knowledge bases, their sources (URLs, website crawls), search, and agent assignment

### List knowledge bases

 - [GET /public/v1/knowledge-bases](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/listknowledgebases.md): Lists knowledge bases for the account. Filter by shared/private and search text. Requires a USER API key.

### Create knowledge base

 - [POST /public/v1/knowledge-bases](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/createknowledgebase.md): Creates a knowledge base. Requires a USER API key.

### Get knowledge base details

 - [GET /public/v1/knowledge-bases/{knowledgeBaseId}](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/getknowledgebase.md): Returns a knowledge base by ID. Requires a USER API key.

### Update knowledge base

 - [PUT /public/v1/knowledge-bases/{knowledgeBaseId}](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/updateknowledgebase.md): Updates a knowledge base's name or description. Requires a USER API key.

### Delete knowledge base

 - [DELETE /public/v1/knowledge-bases/{knowledgeBaseId}](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/deleteknowledgebase.md): Deletes a knowledge base and all of its sources. Default knowledge bases cannot be deleted. Requires a USER API key.

### Search a knowledge base

 - [POST /public/v1/knowledge-bases/{knowledgeBaseId}/search](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/searchknowledgebase.md): Semantic search over a knowledge base's indexed content. Returns matching chunks with similarity scores. Requires a USER API key.

### List knowledge base sources

 - [GET /public/v1/knowledge-bases/{knowledgeBaseId}/sources](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/listknowledgesources.md): Lists all sources (files, URLs, web pages) in a knowledge base. Requires a USER API key.

### Remove knowledge sources

 - [DELETE /public/v1/knowledge-bases/{knowledgeBaseId}/sources](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/removeknowledgesources.md): Removes the given sources from a knowledge base. Requires a USER API key.

### Get knowledge source details

 - [GET /public/v1/knowledge-bases/{knowledgeBaseId}/sources/{sourceId}](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/getknowledgesource.md): Returns a single knowledge source by ID. Requires a USER API key.

### Add URL sources

 - [POST /public/v1/knowledge-bases/{knowledgeBaseId}/sources/urls](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/addknowledgeurlsource.md): Adds one or more URL sources to a knowledge base. The URLs are fetched and indexed asynchronously. Requires a USER API key.

### Add a website crawl source

 - [POST /public/v1/knowledge-bases/{knowledgeBaseId}/website-crawls](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/addknowledgewebsitecrawl.md): Starts a website crawl that discovers and indexes pages under the given URL. Requires a USER API key.

### Resync knowledge sources

 - [POST /public/v1/knowledge-bases/{knowledgeBaseId}/sources/resync](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/resyncknowledgesources.md): Re-fetches and re-indexes the given URL/web-page sources. Requires a USER API key.

### Resync a website crawl

 - [POST /public/v1/knowledge-bases/{knowledgeBaseId}/website-crawls/{websiteSourceId}/resync](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/resyncknowledgewebsitecrawl.md): Re-crawls a website source, optionally overriding crawl configuration. Requires a USER API key.

### Get website crawl sync history

 - [GET /public/v1/knowledge-bases/{knowledgeBaseId}/website-crawls/{websiteSourceId}/sync-history](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/getknowledgewebsitesynchistory.md): Lists sync summaries (crawl runs) for a website source. Requires a USER API key.

### List knowledge bases assigned to an agent

 - [GET /public/v1/agents/{agentId}/knowledge-bases](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/listassignedknowledgebases.md): Lists knowledge bases assigned to a specific agent. Requires a USER API key.

### Assign knowledge bases to an agent

 - [PUT /public/v1/agents/{agentId}/knowledge-bases](https://docs.getfrontline.ai/reference/openapi/knowledge-bases/assignknowledgebases.md): Sets the full list of shared knowledge bases assigned to an agent (replaces existing assignments). Requires a USER API key.

## Account

Inspect the identity attached to the current API key

### Get current identity

 - [GET /public/v1/me](https://docs.getfrontline.ai/reference/openapi/account/getme.md): Returns the account and (for USER keys) user attached to the API key. Use this to validate a key and inspect the calling identity.

## AI Models

Discover available AI models for agent configuration

### List AI models

 - [GET /public/v1/ai-models](https://docs.getfrontline.ai/reference/openapi/ai-models/listaimodels.md): Returns available AI models. Use these IDs when configuring an agent setting.

### Get default AI model

 - [GET /public/v1/ai-models/default](https://docs.getfrontline.ai/reference/openapi/ai-models/getdefaultaimodel.md): Returns the default AI model for the requested model type.

### Get AI model

 - [GET /public/v1/ai-models/{aiModelId}](https://docs.getfrontline.ai/reference/openapi/ai-models/getaimodel.md): Returns one AI model by ID.

## Billing

View billing plan details, credits, and renewal information

### Get billing plan details

 - [GET /public/v1/billing](https://docs.getfrontline.ai/reference/openapi/billing/getbillingplan.md): Returns billing plan information including plan name, credits per month, credits used, and subscription renewal date.

### Get Studio usage details

 - [GET /public/v1/billing/usage](https://docs.getfrontline.ai/reference/openapi/billing/getstudiousage.md): Returns Studio (account-level) usage: credits used vs limit, counts of agents, workflows, flows, users and knowledge bases, current plan, subscription details, and upcoming plan changes. Requires a USER API key.

### Get credit consumption history

 - [GET /public/v1/billing/credits/history](https://docs.getfrontline.ai/reference/openapi/billing/getcredithistory.md): Returns daily credit consumption broken down by AI model. Optionally filter with start_date and end_date (ISO dates).

### Get Max usage details

 - [GET /public/v1/billing/max/usage](https://docs.getfrontline.ai/reference/openapi/billing/getmaxusage.md): Returns Max plan details: plan name and features, subscription status and renewal, seat totals, feature limits (knowledge sources, playbooks, custom labels, tasks, WhatsApp), and upcoming plan changes. Requires a USER API key.

### List Max seat assignments

 - [GET /public/v1/billing/max/seats](https://docs.getfrontline.ai/reference/openapi/billing/getmaxseats.md): Returns total/available Max seat counts plus the users currently holding a seat and the users without one. Requires a USER API key.

### Assign a Max seat to a user

 - [POST /public/v1/billing/max/seats/assign](https://docs.getfrontline.ai/reference/openapi/billing/assignmaxseat.md): Assigns a Max seat to the given user. Fails if no seats are available or the user already holds one. Requires a USER API key belonging to an OWNER or ADMIN.

### Unassign a user's Max seat

 - [POST /public/v1/billing/max/seats/unassign](https://docs.getfrontline.ai/reference/openapi/billing/unassignmaxseat.md): Removes the Max seat from the given user, freeing it for someone else. Requires a USER API key belonging to an OWNER or ADMIN.

## Users

List account users to resolve IDs for relations and assignment

### List account users

 - [GET /public/v1/users](https://docs.getfrontline.ai/reference/openapi/users/listusers.md): Lists the users in your account. Use to resolve user IDs for user-relation fields and task assignment. Requires a USER API key.

## User Tasks

User tasks — the account 'To-dos' inbox: create, list, update, complete, and delete tasks, optionally linked to an object record. Distinct from object-row tasks (Object tasks) and from Max tasks.

### List user tasks

 - [GET /public/v1/tasks](https://docs.getfrontline.ai/reference/openapi/user-tasks/listtasks.md): Lists user tasks — the account 'To-dos' inbox. Filter by assigned_to_me, completed, object_name (tasks linked to an object), or people_ids/team_ids. Each task includes assignees and the linked object record (if any). Requires a USER API key. Distinct from object-row tasks (/objects/{object}/rows/{rowId}/tasks) and from Max tasks.

### Create a user task

 - [POST /public/v1/tasks](https://docs.getfrontline.ai/reference/openapi/user-tasks/createtask.md): Creates a user task (to-do). Optionally link it to an object record by passing object_name + row_id together. assignee_ids are user IDs (see GET /users). Requires a USER API key.

### Get a user task

 - [GET /public/v1/tasks/{taskId}](https://docs.getfrontline.ai/reference/openapi/user-tasks/gettask.md): Returns a single user task by ID. Requires a USER API key.

### Update a user task

 - [PATCH /public/v1/tasks/{taskId}](https://docs.getfrontline.ai/reference/openapi/user-tasks/updatetask.md): Updates a task. Send only the fields to change. Pass due_date: null to clear the due date, or object_name: null + row_id: null to unlink the related object record. Requires a USER API key.

### Delete a user task

 - [DELETE /public/v1/tasks/{taskId}](https://docs.getfrontline.ai/reference/openapi/user-tasks/deletetask.md): Permanently deletes a user task. Requires a USER API key.

### Complete a user task

 - [POST /public/v1/tasks/{taskId}/complete](https://docs.getfrontline.ai/reference/openapi/user-tasks/completetask.md): Marks a task as completed. Only a user assigned to the task can complete it. Requires a USER API key.

### Uncomplete a user task

 - [POST /public/v1/tasks/{taskId}/uncomplete](https://docs.getfrontline.ai/reference/openapi/user-tasks/uncompletetask.md): Clears the completed state of a task. Requires a USER API key.

## Guidance

Builder reference data sourced live from backend constants: valid icons, colors, and formats for objects/tables/fields, plus the workflow/flow node-type catalog. Use these instead of hard-coding allowlists.

### List valid icons and colors

 - [GET /public/v1/guidance/visual-options](https://docs.getfrontline.ai/reference/openapi/guidance/getvisualoptions.md): Returns the allowlists used when creating objects, tables, fields, and select options: valid icon keys, icon colors, option colors, and tag/relation modes. Sourced live from backend constants, so values never drift from validation. Accepts any valid API key.

### Field type & metadata reference

 - [GET /public/v1/guidance/fields](https://docs.getfrontline.ai/reference/openapi/guidance/getfieldguidance.md): Returns a markdown reference for every field/column type (string, number, boolean, date, dateOnly, select, relation), its metadata shape (formats, currency, decimals, modes), and best practices. Generated from the same constants the create/update schemas validate against. Accepts any valid API key.

### List workflow/flow node types

 - [GET /public/v1/guidance/nodes](https://docs.getfrontline.ai/reference/openapi/guidance/listnodetypes.md): Returns every node type with flags for where it is valid (agent flow vs automation workflow) and whether it may have multiple outgoing edges. Use this to pick valid node types before building a flow or workflow graph. Accepts any valid API key.

### Get configuration guidance for a node type

 - [GET /public/v1/guidance/nodes/{nodeType}](https://docs.getfrontline.ai/reference/openapi/guidance/getnodeguidance.md): Returns markdown guidance for configuring a single node type (e.g. TOOLS_AI, API, CONDITIONAL_ROUTING). Content is published per node type and editable without a deploy; returns empty guidance when none is published. Accepts any valid API key.

