Skip to main content
PATCH
Update a project

Authorizations

Authorization
string
header
required

Organisation-scoped admin API key (ok_…). Pass in the Authorization: Bearer <key> header. Used to manage projects and other organisation-level resources.

Path Parameters

projectId
integer | null

Numeric project identifier.

Example:

42

Body

application/json

Partial update of a project. Only fields included in the request body are modified.

name
string | null
Minimum string length: 1
description
string | null
website_url
string | null
Pattern: ^$|^(https?:\/\/)?([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]+)?(\/\S*)?$
locale
string | null
Required string length: 1 - 255
timezone
string | null
Required string length: 1 - 50
text_opt_out_message
string | null
text_help_message
string | null
track_opens_email
boolean | null
Pattern: ^(https:\/\/|$)

Response

The updated project.

Project as seen by an organisation API key (ok_). The publishable shape excludes internal credential storage and project-scoped fields such as the caller’s project role.

id
integer
required

Numeric project identifier.

Example:

42

organization_id
integer
required

Identifier of the owning organisation.

Example:

7

name
string
required

Human-readable project name.

Example:

"Acme Marketing"

locale
string
required

Default BCP-47 locale used for content rendering and timestamp formatting.

Example:

"en-AU"

timezone
string
required

Default IANA timezone used for time-of-day scheduling.

Example:

"Australia/Sydney"

created_at
string | null
required

Time the project was created. ISO 8601.

Example:

"2026-04-28T05:14:00.000Z"

updated_at
string | null
required

Time the project was last modified. ISO 8601.

Example:

"2026-04-28T05:14:00.000Z"

description
string | null

Optional free-text description of the project.

website_url
string | null

The project’s public website URL, if set.

Example:

"https://acme.example"

text_opt_out_message
string | null

Custom opt-out reply for SMS recipients. When omitted, a system default is used.

text_help_message
string | null

Custom HELP reply for SMS recipients. When omitted, a system default is used.

When true, links in email content are rewritten through the tracking domain.

When true, links in push payloads are rewritten through the tracking domain.

track_opens_email
boolean | null

When true, an open-tracking pixel is embedded in outgoing email.

HTTPS-only mirror URL used for Universal Links and App Links resolution.

Example:

"https://links.acme.example"

role
enum<string>

Caller’s effective role on this project. Populated on single-project responses (create/update); omitted on the list endpoint to avoid per-row joins.

Available options:
support,
smtpproxy,
editor,
publisher,
admin
Example:

"admin"

has_provider
boolean

Whether the project has at least one delivery provider configured. Populated on single-project responses; omitted on the list endpoint.