Skip to main content
PATCH
/
projects
/
{projectId}
Update a project
curl --request PATCH \
  --url https://apix.spotzee.com/api/client/projects/{projectId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "website_url": "<string>",
  "locale": "<string>",
  "timezone": "<string>",
  "text_opt_out_message": "<string>",
  "text_help_message": "<string>",
  "link_wrap_email": true,
  "link_wrap_push": true,
  "track_opens_email": true,
  "deeplink_mirror_url": "<string>"
}
'
{
  "id": 42,
  "organization_id": 7,
  "name": "Acme Marketing",
  "locale": "en-AU",
  "timezone": "Australia/Sydney",
  "created_at": "2026-04-28T05:14:00.000Z",
  "updated_at": "2026-04-28T05:14:00.000Z",
  "description": "<string>",
  "website_url": "https://acme.example",
  "text_opt_out_message": "<string>",
  "text_help_message": "<string>",
  "link_wrap_email": true,
  "link_wrap_push": true,
  "track_opens_email": true,
  "deeplink_mirror_url": "https://links.acme.example",
  "role": "admin",
  "has_provider": true
}

Documentation Index

Fetch the complete documentation index at: https://docs.spotzee.com/llms.txt

Use this file to discover all available pages before exploring further.

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.