solarOS Organization API

Organization API

Update one Campaign

Updates standard Campaign fields and may append External References. No-op PATCH returns changed=false without audit or domain events. Material updates emit campaign.updated. Required scope: campaigns:write.

/api/v1/campaigns/{id}

Updates standard Campaign fields and may append External References. No-op PATCH returns changed=false without audit or domain events. Material updates emit campaign.updated. Required scope: campaigns:write.

Update one Campaign. Use an organization API key with campaigns:write. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

campaigns:write

Parameters

NameInTypeDescription
idrequiredpathstringCampaign identifier returned by the Organization API.

Request body

objectrequired
FieldTypeDescription
namestringOptional unless marked required.
statusstring | nullOptional unless marked required.
typestring | nullOptional unless marked required.
descriptionstring | nullOptional unless marked required.
isActivebooleanOptional unless marked required.
startDatestring | nullOptional unless marked required.
endDatestring | nullOptional unless marked required.
budgetedCoststring | number | nullOptional unless marked required.
actualCoststring | number | nullOptional unless marked required.
expectedRevenuestring | number | nullOptional unless marked required.
expectedResponseRatestring | number | nullOptional unless marked required.
metadataobjectOptional unless marked required.
externalReferences[]array<object>Optional unless marked required.
externalReferences[].externalSystemrequiredstringOptional unless marked required.
externalReferences[].externalObjectrequiredstringOptional unless marked required.
externalReferences[].externalIdrequiredstringOptional unless marked required.
externalReferences[].metadataobjectOptional unless marked required.
updatecampaignRequest
{
  "status": "completed",
  "isActive": false
}

Responses

200

Updated Campaign envelope with changed metadata

#/components/schemas/OrgApiResourceEnvelope

400

Validation error

#/components/schemas/OrgApiError

401

Missing or invalid organization API key

#/components/schemas/OrgApiError

402

Organization billing access or an endpoint-specific business quota denied the request

#/components/schemas/OrgApiError

403

Missing required scope: campaigns:write

#/components/schemas/OrgApiError

404

Campaign not found

#/components/schemas/OrgApiError

409

External Reference conflict

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 Validation error401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: campaigns:write404 Campaign not found409 External Reference conflict429 Rate limit exceeded

Static examples

curl -X PATCH "$SOLAROS_BASE_URL/api/v1/campaigns/$SOLAROS_CAMPAIGN" \
  -H "Authorization: Bearer $SOLAROS_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"status":"completed","isActive":false}'