Skip to main content
POST
cURL

Single and bulk behavior

  • Send one Attribute object to create or upsert one key. A new key returns 201; an existing compatible key returns 200 with the bare Attribute.
  • Send { "attributes": [...] } to upsert up to 500 Attributes atomically. The response is 200 with { "data": [...] }.
  • An existing Attribute’s type cannot change. A Relation Attribute’s relation kind cannot change either.
  • Omitted language, image_config, and number_config values preserve existing metadata during an upsert.
Use a new key when you need a different type. Use POST /attributes/{key}/rename only when the identity stays the same and the key changes.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
key
string
required
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9_/]*$
label
string
required
type
enum<string>
required
Available options:
text,
number,
url,
email,
date,
boolean,
richtext,
format,
enum,
tags,
image,
images,
file,
files,
json,
relation
format_output_type
enum<string> | null

Only valid for format Attributes. Defaults to text when omitted or null.

Available options:
text,
number,
boolean,
json,
richtext,
file,
image
enum_values
string[] | null
tags_values
string[] | null
allow_custom_values
boolean
default:true
boolean_config
object | null
number_config
object | null

Only valid for number or Formula-number Attributes. Omit during an upsert to preserve existing metadata.

relation_config
object | null

Relation kind is immutable after creation.

description
string | null
validation
object | null
language
string | null

When omitted during an upsert, the existing language is preserved.

image_config
object

When omitted during an upsert, existing canonical image requirements are preserved. Send an empty object to clear them.

is_reviewed
boolean

Response

Existing single Attribute updated, or bulk upsert completed

id
string<uuid>
required
key
string
required
label
string
required
type
enum<string>
required
Available options:
text,
number,
url,
email,
date,
boolean,
richtext,
format,
enum,
tags,
image,
images,
file,
files,
json,
relation
format_output_type
enum<string> | null
required

The stored result type produced by a format Attribute. Format formulas execute only in Extraction; Catalog stores the resulting value.

Available options:
text,
number,
boolean,
json,
richtext,
file,
image
enum_values
string[] | null
required
tags_values
string[] | null
required
allow_custom_values
boolean
required

Whether table editors may append missing enum or tag choices.

boolean_config
object | null
required
number_config
object | null
required

Presentation metadata for number and Formula-number Attributes. Stored and API values remain numeric.

relation_config
object | null
required
description
string | null
required
validation
object | null
required
language
string | null
required
image_config
object | null
required

Canonical requirements shared by every usage of an image Attribute.

status
enum<string>
required

Derived from archive state. Archive and restore remain Dashboard-only.

Available options:
active,
archived
archived_at
string<date-time> | null
required
is_reviewed
boolean
required
source_id
string<uuid> | null
required
external_id
string | null
required
source_synced_at
string<date-time> | null
required
created_at
string<date-time>
required
updated_at
string<date-time>
required