Skip to main content
POST
Create a delivery

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. Exchange your client_id and client_secret for an access token scoped to the organisation that provides data access.

Headers

Cula-Organisation-Id
string
required

ID of the organisation the request operates on behalf of (e.g. org_...). Must be an organisation the API client has access to.

Example:

"org_01k83mfmhgchya944v86ryvhpq"

Body

application/json
config_id
string
required

The ID of the delivery config that defines the delivery to create.

Example:

"dlvc_01kkygy9cxxqhhr93aw74aycbr"

status
enum<string>
default:finished

Whether to create the delivery as an editable draft or as a finished delivery. Drafts may still be incomplete: mandatory data point values, the payload, and legs or their sites can be omitted and added later.

Available options:
draft,
finished
occurred_at
string<date-time>

When the delivery took place: an ISO 8601 date-time with an explicit UTC offset (Z or ±hh:mm). Defaults to now if omitted.

Example:

"2026-01-15T08:00:00Z"

external_id
string

A optional custom ID that can be set to an internal ID from your system. This ID must be unique within all objects of the organisation you operate in. You can later use this external ID to reference and query this object. Be aware that you can update this ID later. If you need an immutable ID, use the object ID returned when creating the object.

Required string length: 1 - 100
Pattern: ^[A-Za-z0-9\-_]+$
Example:

"MY-CUSTOM-ID"

legs
object[]

The transport legs of the delivery, in order. For incoming configs, the last leg must be received by the config's site; for outgoing configs, the first leg must be sent by the config's site. Required for finished deliveries.

Required array length: 1 element
payload_containers
(New Container · object | Existing Container · object)[]

The payload containers of the delivery. Only applicable to non-unified configs (unified: false): describe each container against one of the config's payload_configs via config_id.

Maximum array length: 100

Describes a new container to create, based on one of the container configs the flow's config lists.

payload
object
deprecated

Use data_points or payload_containers instead.

data_points
object[]

Values for the delivery's data points. When the config is unified (unified: true), the flat array spans the whole flow (delivery and payload container); when unified is false, only the delivery's own data points — payload values belong to the payload_containers items.

Maximum array length: 100

Response

Delivery created.

id
string
required

The ID of the delivery.

Example:

"dlv_01k204p7hghzdtwjb3n48s5fs5"

config_id
string
required

The ID of the delivery config the delivery was created from.

Example:

"dlvc_01kkygy9cxxqhhr93aw74aycbr"

config_version_id
string
required

The ID of the exact delivery config version the delivery was created from.

Example:

"dlvcv_01kkw6g3ayad6f092rbkbjcaxq"

external_id
string | null
required

Optional external ID of the delivery.

Example:

"MY-CUSTOM-ID"

display_id
string
required

Human-readable, server-generated identifier scoped to the issuing site.

Example:

"D-148"

status
enum<string>
required

Lifecycle status. draft deliveries are still being prepared and may be missing data point values, payload or leg sites; finished deliveries are complete.

Available options:
draft,
finished
Example:

"finished"

site
object
required

The site that issued the delivery (owns its config).

legs
object[]
required

The transport legs of the delivery, in order.

occurred_at
string<date-time>
required

When the delivery took place.

Example:

"2026-01-15T08:00:00Z"

created_at
string<date-time>
required

When the delivery was recorded in Cula.

Example:

"2026-01-15T08:00:00Z"

data_points
(short_text · object | long_text · object | multi_text · object | number · object | percentage · object | amount · object | timestamp · object | duration · object | boolean · object | material · object | material_batch · object | container_type · object | material_pool · object)[]
required

Data points set on the delivery itself.

Data point holding a single line of text.

payload_containers
object[]
required

The material containers carried by the delivery.

payload
object[]
required
deprecated

Use payload_containers instead.