OpenAPI Specification
openapi: 3.0.0
info:
title: Public Account Object files 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: Object files
description: Files attached to object rows
paths:
/public/v1/objects/{name}/rows/{rowId}/files:
get:
summary: List files
operationId: listObjectFiles
description: Returns the files attached to a row.
security:
- bearerAuth: []
tags:
- Object files
parameters:
- schema:
type: string
minLength: 1
example: deals
required: true
name: name
in: path
- schema:
type: string
example: 65cf9b3a4b7c2a0012a3b4c5
required: true
name: rowId
in: path
responses:
'200':
description: Files
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
filename:
type: string
example: example
mime_type:
type: string
example: example
size_bytes:
type: number
example: 1
url:
type: string
example: example
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- filename
- 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: Upload files
operationId: uploadObjectFiles
description: Uploads one or more files to a row as multipart/form-data under the `files` field. Requires a USER API key.
security:
- bearerAuth: []
tags:
- Object files
parameters:
- schema:
type: string
minLength: 1
example: deals
required: true
name: name
in: path
- schema:
type: string
example: 65cf9b3a4b7c2a0012a3b4c5
required: true
name: rowId
in: path
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
files:
type: array
items:
nullable: true
type: object
description: Binary file uploads. Send as multipart form-data.
required:
- files
responses:
'201':
description: Uploaded files
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
filename:
type: string
example: example
mime_type:
type: string
example: example
size_bytes:
type: number
example: 1
url:
type: string
example: example
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- filename
- 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/objects/{name}/files/{id}:
get:
summary: Get file
operationId: getObjectFile
description: Returns file metadata.
security:
- bearerAuth: []
tags:
- Object files
parameters:
- schema:
type: string
minLength: 1
example: deals
required: true
name: name
in: path
- schema:
type: integer
minimum: 0
exclusiveMinimum: true
example: 100
required: true
name: id
in: path
responses:
'200':
description: File
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
filename:
type: string
example: example
mime_type:
type: string
example: example
size_bytes:
type: number
example: 1
url:
type: string
example: example
created_at:
type: string
nullable: true
example: example
updated_at:
type: string
nullable: true
example: example
required:
- id
- row_id
- filename
- 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 file
operationId: deleteObjectFile
description: Deletes a file from a row. Requires a USER API key.
security:
- bearerAuth: []
tags:
- Object files
parameters:
- schema:
type: string
minLength: 1
example: deals
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'
/public/v1/objects/{name}/files/{id}/download:
get:
summary: Download file
operationId: downloadObjectFile
description: Streams the file content. Returns the file binary; not a JSON envelope.
security:
- bearerAuth: []
tags:
- Object files
parameters:
- schema:
type: string
minLength: 1
example: deals
required: true
name: name
in: path
- schema:
type: integer
minimum: 0
exclusiveMinimum: true
example: 100
required: true
name: id
in: path
responses:
'200':
description: File binary
content:
application/octet-stream:
schema:
nullable: true
'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