Skip to content

Bulk create projects

POST/api/v1/projects/bulk

Create up to 100 projects in one request with per-row customer resolution. Rows may pass customer_name instead of customer_id — an exact case-insensitive match auto-resolves; ambiguous or unmatched names fail only that row (CUSTOMER_AMBIGUOUS / CUSTOMER_NOT_FOUND with candidate customers) unless create_missing_customers is true, in which case unmatched customers are created inline.

Operation ID: bulk_create_projects·View as markdown·OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Request body

rowsarray · ProjectBulkCreateRowrequiredProjectBulkCreateRow
9 fields
namestringrequired

Project name.

codestring

Optional code.

skustring

Optional short catalog/site code.

descriptionstring

Optional description.

statusstring

One of: active, completed, on_hold.

customer_idstring

Customer UUID; takes precedence over customer_name.

customer_namestring

Customer name, matched case-insensitively (exact match) against the business's customers when customer_id is not given.

start_datestring · date

Optional project start date.

end_datestring · date

Optional project end date.

create_missing_customersboolean

When true, rows whose customer_name matches no existing customer create that customer inline instead of failing.

Responses

201Successful Response

successboolean
messagestring
codestring
dataProjectBulkCreateResponse

400Bad Request - Invalid input

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

401Unauthorized - Missing or expired token, an MCP OAuth token used against the REST API, or no access to this business

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

403Forbidden - Insufficient permissions

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.

422Validation Error

errorstringrequired

Error category: validation_error, unauthorized, forbidden, not_found, conflict, rate_limited, server_error, or service_unavailable.

messagestringrequired

Human-readable explanation, safe to show to end users.

codestringrequired

Stable machine-readable code in CATEGORY_NNN form (e.g. NOT_FOUND_006, AUTH_010, GEN_002).

request_idstring

Correlation id for support requests. Echoes the x-request-id request header when one was supplied.

errorsobject

Field-level validation messages keyed by field name. Present on 400/422 validation failures only.