Skip to content

Developers

API reference

Every endpoint of the Officely public API (110 operations), generated from the API itself.

Basics#

Chatbots, AI flows, customers, conversations, messages and webhooks of your Officely account. Errors are problem+json; personal data is masked unless the key has conversations:read_pii and the request says redact=false.

  • Base URL: https://api.officely.ai/v1/public (staging: https://api-dev.officely.ai/v1/public)
  • Authentication: send your API key in the x-officely-token header. Create a key in Developers › API keys and give it only the scopes listed on the endpoints you call.
  • Errors: application/problem+json with a stable code and a detail that says what to do. Quote X-Request-ID when you contact support.
  • Rate limits: every answer carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. On 429, wait Retry-After seconds.
  • Lists: answers are {data, next_cursor}; pass next_cursor as cursor for the next page.
  • Machine-readable spec: openapi.json (OpenAPI 3.1), for Postman, code generators and AI assistants.

Account#

Me#

GET/me

  • Scopes: none
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/me" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Plan#

Plan#

GET/plan

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/plan" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Team#

Team#

GET/team

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/team" \
  -H "x-officely-token: $OFFICELY_API_KEY"

API keys#

Api keys#

GET/api-keys

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/api-keys" \
  -H "x-officely-token: $OFFICELY_API_KEY"

AI credits#

Ai credits#

GET/ai-credits

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-credits" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Ai credits usage#

GET/ai-credits/usage

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-credits/usage" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Features#

Features#

GET/features

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/features" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Onboarding#

Start build#

POST/onboarding/builds

Every change is recorded in the account's audit log.

  • Scopes: builders:write, builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/onboarding/builds" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Job status#

GET/onboarding/jobs/{job_id}

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
job_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/onboarding/jobs/{job_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Chatbots (builder)#

List builders#

GET/builders

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Create builder#

POST/builders

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Get builder#

GET/builders/{builder_id}

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Rename#

PATCH/builders/{builder_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/builders/{builder_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete bot#

DELETE/builders/{builder_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/builders/{builder_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Get bot messages#

GET/builders/{builder_id}/bot-messages

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/bot-messages" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Set bot messages#

PUT/builders/{builder_id}/bot-messages

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PUT "https://api.officely.ai/v1/public/builders/{builder_id}/bot-messages" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Create brick#

POST/builders/{builder_id}/bricks

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/bricks" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Update brick#

PATCH/builders/{builder_id}/bricks/{brick_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
brick_id (required)pathstring
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/builders/{builder_id}/bricks/{brick_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete brick#

DELETE/builders/{builder_id}/bricks/{brick_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
brick_id (required)pathstring
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/builders/{builder_id}/bricks/{brick_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Build#

POST/builders/{builder_id}/build

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/build" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Doctor report#

GET/builders/{builder_id}/doctor

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/doctor" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Doctor copy#

POST/builders/{builder_id}/doctor/copy

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/doctor/copy" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Duplicate bot#

POST/builders/{builder_id}/duplicate

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/duplicate" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Add edge#

POST/builders/{builder_id}/edges

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/edges" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete edge#

DELETE/builders/{builder_id}/edges/{edge_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
edge_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/builders/{builder_id}/edges/{edge_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Get flow#

GET/builders/{builder_id}/flow

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/flow" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Auto layout#

POST/builders/{builder_id}/layout

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/layout" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Add node#

POST/builders/{builder_id}/nodes

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/nodes" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Update node#

PATCH/builders/{builder_id}/nodes/{node_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
node_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/builders/{builder_id}/nodes/{node_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete node#

DELETE/builders/{builder_id}/nodes/{node_id}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
node_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/builders/{builder_id}/nodes/{node_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Duplicate node#

POST/builders/{builder_id}/nodes/{node_id}/duplicate

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
node_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/nodes/{node_id}/duplicate" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Test http step#

POST/builders/{builder_id}/nodes/{node_id}/test-http

Every change is recorded in the account's audit log.

  • Scopes: builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
node_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/nodes/{node_id}/test-http" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete nodes#

POST/builders/{builder_id}/nodes/delete

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/nodes/delete" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Publish#

POST/builders/{builder_id}/publish

Every change is recorded in the account's audit log.

  • Scopes: builders:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/publish" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Publish plan#

GET/builders/{builder_id}/publish-plan

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/publish-plan" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get settings#

GET/builders/{builder_id}/settings

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/settings" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Update settings#

PATCH/builders/{builder_id}/settings

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/builders/{builder_id}/settings" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Run test#

POST/builders/{builder_id}/test

Every change is recorded in the account's audit log.

  • Scopes: builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/test" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Rewrite texts#

POST/builders/{builder_id}/texts

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/texts" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Unpublish#

POST/builders/{builder_id}/unpublish

Every change is recorded in the account's audit log.

  • Scopes: builders:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/unpublish" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Get validation#

GET/builders/{builder_id}/validation

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/validation" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Variables#

GET/builders/{builder_id}/variables

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/variables" \
  -H "x-officely-token: $OFFICELY_API_KEY"

List versions#

GET/builders/{builder_id}/versions

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/versions" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get version#

GET/builders/{builder_id}/versions/{version}

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring
version (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/versions/{version}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Rollback version#

POST/builders/{builder_id}/versions/{version}/rollback

Every change is recorded in the account's audit log.

  • Scopes: builders:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
builder_id (required)pathstring
version (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builders/{builder_id}/versions/{version}/rollback" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Diff versions#

GET/builders/{builder_id}/versions/diff

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
builder_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builders/{builder_id}/versions/diff" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Chatbot templates#

List templates#

GET/builder-templates

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builder-templates" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get template#

GET/builder-templates/{template_id}

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
template_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/builder-templates/{template_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Create from template#

POST/builder-templates/{template_id}/create

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
template_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builder-templates/{template_id}/create" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Preview template#

POST/builder-templates/{template_id}/preview

  • Scopes: builders:test
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
template_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/builder-templates/{template_id}/preview" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Node types#

Node types#

GET/node-types

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/node-types" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Step types#

Step types#

GET/step-types

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/step-types" \
  -H "x-officely-token: $OFFICELY_API_KEY"

HTTP steps#

List http secrets#

GET/http-steps/secrets

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/http-steps/secrets" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Save http secret#

PUT/http-steps/secrets/{name}

Every change is recorded in the account's audit log.

  • Scopes: builders:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
name (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PUT "https://api.officely.ai/v1/public/http-steps/secrets/{name}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete http secret#

DELETE/http-steps/secrets/{name}

Every change is recorded in the account's audit log.

  • Scopes: builders:publish
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
name (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/http-steps/secrets/{name}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Python steps#

Guide#

GET/python-steps

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/python-steps" \
  -H "x-officely-token: $OFFICELY_API_KEY"

List keys#

GET/python-steps/keys

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/python-steps/keys" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Save key#

PUT/python-steps/keys/{name}

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
name (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PUT "https://api.officely.ai/v1/public/python-steps/keys/{name}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete key#

DELETE/python-steps/keys/{name}

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:publish
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
name (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/python-steps/keys/{name}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Test run#

POST/python-steps/test

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:read, builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/python-steps/test" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Expressions#

Test expression#

POST/expressions/test

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/expressions/test" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

AI agents#

List agents#

GET/agents

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/agents" \
  -H "x-officely-token: $OFFICELY_API_KEY"

AI flows#

List flows#

GET/ai-flows

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-flows" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Create flow#

POST/ai-flows

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Get flow#

GET/ai-flows/{agent_id}

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
agent_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-flows/{agent_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Delete flow#

DELETE/ai-flows/{agent_id}

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/ai-flows/{agent_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Build#

POST/ai-flows/{agent_id}/build

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/build" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Add node#

POST/ai-flows/{agent_id}/nodes

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/nodes" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Update node#

PATCH/ai-flows/{agent_id}/nodes/{node_id}

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring
node_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/ai-flows/{agent_id}/nodes/{node_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete node#

DELETE/ai-flows/{agent_id}/nodes/{node_id}

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring
node_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/ai-flows/{agent_id}/nodes/{node_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

Output schema#

PUT/ai-flows/{agent_id}/nodes/{node_id}/output-schema

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring
node_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PUT "https://api.officely.ai/v1/public/ai-flows/{agent_id}/nodes/{node_id}/output-schema" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Publish#

POST/ai-flows/{agent_id}/publish

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/publish" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Retrieval preview#

POST/ai-flows/{agent_id}/retrieval-preview

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:read, builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/retrieval-preview" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Rollback#

POST/ai-flows/{agent_id}/rollback

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:publish
  • Rate limit: 10 requests per 600 s per key (publish)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/rollback" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Settings#

PATCH/ai-flows/{agent_id}/settings

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/ai-flows/{agent_id}/settings" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Run test#

POST/ai-flows/{agent_id}/test

Every change is recorded in the account's audit log.

  • Scopes: ai_flows:read, builders:test
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
agent_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/ai-flows/{agent_id}/test" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Get validation#

GET/ai-flows/{agent_id}/validation

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
agent_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-flows/{agent_id}/validation" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get versions#

GET/ai-flows/{agent_id}/versions

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
agent_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-flows/{agent_id}/versions" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Node types#

GET/ai-flows/node-types

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-flows/node-types" \
  -H "x-officely-token: $OFFICELY_API_KEY"

AI models#

Ai models#

GET/ai-models

  • Scopes: ai_flows:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/ai-models" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Channels#

Channels#

GET/channels

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/channels" \
  -H "x-officely-token: $OFFICELY_API_KEY"

WhatsApp templates#

Whatsapp templates#

GET/whatsapp-templates

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/whatsapp-templates" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Messages#

Send message#

POST/messages

Every change is recorded in the account's audit log.

  • Scopes: messages:send
  • Rate limit: 60 requests per 60 s per key (send)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/messages" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Bot messages#

Get account messages#

GET/bot-messages/account

  • Scopes: account:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/bot-messages/account" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Put account messages#

PUT/bot-messages/account

Every change is recorded in the account's audit log.

  • Scopes: account:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PUT "https://api.officely.ai/v1/public/bot-messages/account" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Bot messages catalog#

GET/bot-messages/catalog

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/bot-messages/catalog" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Chats#

List chats#

GET/chats

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/chats" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get chat#

GET/chats/{chat_id}

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
chat_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/chats/{chat_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Pause chat#

POST/chats/{chat_id}/pause

Every change is recorded in the account's audit log.

  • Scopes: conversations:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
chat_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/chats/{chat_id}/pause" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Resume chat#

POST/chats/{chat_id}/resume

Every change is recorded in the account's audit log.

  • Scopes: conversations:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
chat_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/chats/{chat_id}/resume" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Conversations#

List conversations#

GET/conversations

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/conversations" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get conversation#

GET/conversations/{conversation_id}

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
conversation_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/conversations/{conversation_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Customers#

List customers#

GET/customers

  • Scopes: customers:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/customers" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get customer#

GET/customers/{phone}

  • Scopes: customers:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
phone (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/customers/{phone}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Update customer#

PATCH/customers/{phone}

Every change is recorded in the account's audit log.

  • Scopes: customers:write
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
phone (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/customers/{phone}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Webhooks#

List webhooks#

GET/webhooks

  • Scopes: webhooks:manage
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/webhooks" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Create webhook#

POST/webhooks

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/webhooks" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Get webhook#

GET/webhooks/{webhook_id}

  • Scopes: webhooks:manage
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
webhook_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/webhooks/{webhook_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Update webhook#

PATCH/webhooks/{webhook_id}

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
webhook_id (required)pathstring

Request body: a JSON object.

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X PATCH "https://api.officely.ai/v1/public/webhooks/{webhook_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete webhook#

DELETE/webhooks/{webhook_id}

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
webhook_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X DELETE "https://api.officely.ai/v1/public/webhooks/{webhook_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

List webhook deliveries#

GET/webhooks/{webhook_id}/deliveries

  • Scopes: webhooks:manage
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
webhook_id (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/webhooks/{webhook_id}/deliveries" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Redeliver webhook#

POST/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
delivery_id (required)pathstring
webhook_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Rotate webhook secret#

POST/webhooks/{webhook_id}/rotate-secret

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 120 requests per 60 s per key (write)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
webhook_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/webhooks/{webhook_id}/rotate-secret" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Send webhook test#

POST/webhooks/{webhook_id}/test

Every change is recorded in the account's audit log.

  • Scopes: webhooks:manage
  • Rate limit: 30 requests per 600 s per key (test)
  • Idempotency: send an Idempotency-Key header. A retry with the same key and body gets the first answer and changes nothing.
ParameterInTypeDescription
webhook_id (required)pathstring

Request body: a JSON object.

Responses:

  • 2XX Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X POST "https://api.officely.ai/v1/public/webhooks/{webhook_id}/test" \
  -H "x-officely-token: $OFFICELY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Webhook event types#

GET/webhooks/event-types

  • Scopes: webhooks:manage
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/webhooks/event-types" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Catch Hook events#

List catch hook events#

GET/catch-hook-events

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/catch-hook-events" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Get catch hook event#

GET/catch-hook-events/{hook_key}/{event_id}

  • Scopes: conversations:read
  • Rate limit: 300 requests per 60 s per key (read)
ParameterInTypeDescription
event_id (required)pathstring
hook_key (required)pathstring

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/catch-hook-events/{hook_key}/{event_id}" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Google#

Google connections#

GET/google/connections

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/google/connections" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Make#

Make hooks#

GET/make/hooks

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/make/hooks" \
  -H "x-officely-token: $OFFICELY_API_KEY"

Make scenarios#

GET/make/scenarios

  • Scopes: builders:read
  • Rate limit: 300 requests per 60 s per key (read)

Responses:

  • 200 Success (JSON). Lists: {data, next_cursor}; pass next_cursor as cursor.
  • 429 Too many requests: wait Retry-After seconds.
  • 400, 401, 403, 404, 409, 503 Error as application/problem+json: code is stable, detail says what to do.
curl
curl -X GET "https://api.officely.ai/v1/public/make/scenarios" \
  -H "x-officely-token: $OFFICELY_API_KEY"