Frontline Table activities API
Manual activities (notes, calls, meetings, emails) attached to table rows
Manual activities (notes, calls, meetings, emails) attached to table rows
openapi: 3.0.0
info:
title: Public Account Table activities API
version: 1.0.0
description: '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.'
license:
name: Proprietary
url: https://www.getfrontline.ai/terms-and-conditions
servers:
- url: https://prod-api.getfrontline.ai
tags:
- name: Table activities
description: Manual activities (notes, calls, meetings, emails) attached to table rows
paths:
/public/v1/tables/{name}/rows/{rowId}/activities:
get:
summary: List activities
operationId: listTableActivities
description: Returns manually-created activities attached to a row. Activities log interactions like notes, calls, meetings, and emails.
security:
- bearerAuth: []
tags:
- Table activities
parameters:
- schema:
type: string
minLength: 1
example: tasks_board
required: true
name: name
in: path
- schema:
type: string
example: 65cf9b3a4b7c2a0012a3b4c5
required: true
name: rowId
in: path
responses:
'200':
description: Activities
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- true
example: true
data:
type: array
items:
type: object
properties:
id:
type: number
example: 1
row_id:
type: string
example: example
type:
type: string
enum:
- NOTE
- EMAIL
- PHONE_CALL
- MEETING
- WHATSAPP
description: NOTE | EMAIL | PHONE_CALL | MEETING | WHATSAPP
example: NOTE
content:
type: string
example: example
activity_date:
type: string
nullable: true
example: example
additional_data:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
related_table_id:
type: number
nullable: true
example: 1
related_row_id:
type: string
nullable: true
example: example
users:
type: array
items:
type: object
properties:
id:
type: number
example: 1
email:
type: string
example: example
required:
- id
- email
created_by:
type: number
nullable: true
example: 1
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- type
- content
- created_at
- updated_at
required:
- ok
- data
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
summary: Create activity
operationId: createTableActivity
description: Attaches a manual activity to a row. Use `type` to categorize it (NOTE, PHONE_CALL, MEETING, EMAIL, WHATSAPP). Requires a USER API key.
security:
- bearerAuth: []
tags:
- Table activities
parameters:
- schema:
type: string
minLength: 1
example: tasks_board
required: true
name: name
in: path
- schema:
type: string
example: 65cf9b3a4b7c2a0012a3b4c5
required: true
name: rowId
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
minLength: 1
example: example
type:
type: string
enum:
- NOTE
- EMAIL
- PHONE_CALL
- MEETING
- WHATSAPP
default: NOTE
example: NOTE
activityDate:
type: string
nullable: true
example: example
additionalData:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
userIds:
type: array
items:
type: integer
minimum: 0
exclusiveMinimum: true
example: 1
relatedTableId:
type: integer
minimum: 0
exclusiveMinimum: true
example: 1
relatedRowId:
type: string
example: example
required:
- content
responses:
'201':
description: Created activity
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- true
example: true
data:
type: object
properties:
id:
type: number
example: 1
row_id:
type: string
example: example
type:
type: string
enum:
- NOTE
- EMAIL
- PHONE_CALL
- MEETING
- WHATSAPP
description: NOTE | EMAIL | PHONE_CALL | MEETING | WHATSAPP
example: NOTE
content:
type: string
example: example
activity_date:
type: string
nullable: true
example: example
additional_data:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
related_table_id:
type: number
nullable: true
example: 1
related_row_id:
type: string
nullable: true
example: example
users:
type: array
items:
type: object
properties:
id:
type: number
example: 1
email:
type: string
example: example
required:
- id
- email
created_by:
type: number
nullable: true
example: 1
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- type
- content
- created_at
- updated_at
required:
- ok
- data
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/public/v1/tables/{name}/activities/{id}:
get:
summary: Get activity
operationId: getTableActivity
description: Returns an activity by id.
security:
- bearerAuth: []
tags:
- Table activities
parameters:
- schema:
type: string
minLength: 1
example: tasks_board
required: true
name: name
in: path
- schema:
type: integer
minimum: 0
exclusiveMinimum: true
example: 100
required: true
name: id
in: path
responses:
'200':
description: Activity
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- true
example: true
data:
type: object
properties:
id:
type: number
example: 1
row_id:
type: string
example: example
type:
type: string
enum:
- NOTE
- EMAIL
- PHONE_CALL
- MEETING
- WHATSAPP
description: NOTE | EMAIL | PHONE_CALL | MEETING | WHATSAPP
example: NOTE
content:
type: string
example: example
activity_date:
type: string
nullable: true
example: example
additional_data:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
related_table_id:
type: number
nullable: true
example: 1
related_row_id:
type: string
nullable: true
example: example
users:
type: array
items:
type: object
properties:
id:
type: number
example: 1
email:
type: string
example: example
required:
- id
- email
created_by:
type: number
nullable: true
example: 1
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- type
- content
- created_at
- updated_at
required:
- ok
- data
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
patch:
summary: Update activity
operationId: updateTableActivity
description: Updates an activity. Requires a USER API key.
security:
- bearerAuth: []
tags:
- Table activities
parameters:
- schema:
type: string
minLength: 1
example: tasks_board
required: true
name: name
in: path
- schema:
type: integer
minimum: 0
exclusiveMinimum: true
example: 100
required: true
name: id
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: string
minLength: 1
example: example
activityDate:
type: string
nullable: true
example: example
additionalData:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
userIds:
type: array
items:
type: integer
minimum: 0
exclusiveMinimum: true
example: 1
relatedTableId:
type: integer
nullable: true
minimum: 0
exclusiveMinimum: true
example: 1
relatedRowId:
type: string
nullable: true
example: example
responses:
'200':
description: Updated activity
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- true
example: true
data:
type: object
properties:
id:
type: number
example: 1
row_id:
type: string
example: example
type:
type: string
enum:
- NOTE
- EMAIL
- PHONE_CALL
- MEETING
- WHATSAPP
description: NOTE | EMAIL | PHONE_CALL | MEETING | WHATSAPP
example: NOTE
content:
type: string
example: example
activity_date:
type: string
nullable: true
example: example
additional_data:
type: object
nullable: true
additionalProperties:
nullable: true
type: object
related_table_id:
type: number
nullable: true
example: 1
related_row_id:
type: string
nullable: true
example: example
users:
type: array
items:
type: object
properties:
id:
type: number
example: 1
email:
type: string
example: example
required:
- id
- email
created_by:
type: number
nullable: true
example: 1
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- type
- content
- created_at
- updated_at
required:
- ok
- data
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
summary: Delete activity
operationId: deleteTableActivity
description: 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.
security:
- bearerAuth: []
tags:
- Table activities
parameters:
- schema:
type: string
minLength: 1
example: tasks_board
required: true
name: name
in: path
- schema:
type: integer
minimum: 0
exclusiveMinimum: true
example: 100
required: true
name: id
in: path
responses:
'200':
description: Deleted
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
enum:
- true
example: true
data:
type: object
properties:
deleted:
type: boolean
enum:
- true
example: true
id:
anyOf:
- type: string
example: example
- type: number
example: 1
required:
- deleted
required:
- ok
- data
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
properties:
ok:
type: boolean
enum:
- false
example: false
error:
$ref: '#/components/schemas/ErrorBody'
required:
- ok
- error
ErrorBody:
type: object
properties:
code:
type: string
enum:
- bad_request
- unauthorized
- forbidden
- not_found
- conflict
- internal_error
- cli_outdated
example: unauthorized
message:
type: string
example: Detailed error message
details:
type: object
description: 'Optional structured details. Validation errors include `{ issues: [...] }`.'
example:
issues:
- path:
- name
message: String must contain at least 1 character(s)
code: too_small
required:
- code
- message
securitySchemes:
accountApiKey:
type: http
scheme: bearer
bearerFormat: Account API Key
description: 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.
userApiKey:
type: http
scheme: bearer
bearerFormat: User API Key
description: 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.
x-tagGroups:
- name: Agent Builder
tags:
- Agent Builder
- Flows
- Flow Variables
- Intents
- Agents
- name: Workflows
tags:
- Workflows
- Workflow Variables
- name: Objects
tags:
- Objects
- Object fields
- Object options
- Object record types
- Object views
- Object relations
- Object rows
- Object aggregations
- Object activities
- Object tasks
- Object files
- Object export
- name: Tables
tags:
- Tables
- Table fields
- Table options
- Table rows
- Table aggregations
- Table activities
- Table tasks
- Table files
- Table export
- name: Integrations
tags:
- Tools
- Incoming Webhooks
- name: Core
tags:
- Account
- AI Models
- Billing