solarOS Organization API

Organization API

Create a Campaign

Creates one tenant-scoped Campaign. Requires Idempotency-Key. External References are created transactionally and conflicts return 409. Writes emit campaign.created for webhook subscribers. Required scope: campaigns:write.

/api/v1/campaigns

Creates one tenant-scoped Campaign. Requires Idempotency-Key. External References are created transactionally and conflicts return 409. Writes emit campaign.created for webhook subscribers. Required scope: campaigns:write.

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

Required scopes

campaigns:writeIdempotency-Key required

Parameters

No path or query parameters.

Request body

objectrequired
FieldTypeDescription
namerequiredstringOptional 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.
createcampaignRequest
{
  "name": "Fall referral campaign",
  "status": "active",
  "type": "referral",
  "isActive": true
}

Responses

201

Created Campaign envelope

#/components/schemas/CampaignEnvelope

400

Validation or idempotency 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

409

Idempotency or External Reference conflict

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

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

Static examples

curl -X POST "$SOLAROS_BASE_URL/api/v1/campaigns" \
  -H "Authorization: Bearer $SOLAROS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $SOLAROS_IDEMPOTENCY_KEY" \
  --data '{"name":"Fall referral campaign","status":"active","type":"referral","isActive":true}'