Console API
Ads units
5 endpoints.
/api/v1/admin/businesses/{business_id}/ads/ad-sets/{ad_set_id}/unitsCreate an ad unit (creative + unit row, single transaction)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
ad_set_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonAdUnitCreateBody| Field | Type | Description |
|---|---|---|
photoIds | string (uuid)[] | null | string (uuid)[] | null fields |
photoId | string (uuid) | null | |
enabled | boolean | default true |
displayIndex | integer | null | |
name | string | null | |
primaryText | string | null | |
headline | string | null | |
description | string | null | |
destinationUrl | string | null | |
callToActionType | string | null | |
urlParams | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_AdUnitData_| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | AdUnitData | AdUnitData fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fields
|
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/ads/units/{unit_id}Toggle, swap photos, reorder
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
unit_idrequired | path | string (uuid) | |
authorization | header | string | null |
Request bodyrequired
application/jsonAdUnitPatchBody| Field | Type | Description |
|---|---|---|
enabled | boolean | null | |
photoIds | string (uuid)[] | null | string (uuid)[] | null fields |
photoId | string (uuid) | null | |
displayIndex | integer | null | |
name | string | null | |
primaryText | string | null | |
headline | string | null | |
description | string | null | |
destinationUrl | string | null | |
callToActionType | string | null | |
urlParams | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_AdUnitData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | AdUnitData | AdUnitData fieldsAdUnitData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/ads/units/{unit_id}Soft-delete an ad unit
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
unit_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
204Successful Response400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/ads/units/{unit_id}/duplicateDuplicate an ad unit (photos + copy overrides; clone starts disabled)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
unit_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
201Successful Responseapplication/jsonSuccessResponse_AdUnitData_| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | AdUnitData | AdUnitData fieldsAdUnitData, expanded above. |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/admin/businesses/{business_id}/ads/units/{unit_id}/generate-copyLLM-generate primary text for one ad unit (KS-2013 per-ad copy)
Unit-scoped successor of ``POST /ad-sets/{id}/generate-ad-copy``: grounded in the unit's creative (existing primary text, CTA, link) plus its set/campaign/business context. Same response shape — the FE drops the text into the unit's primary-text field.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
unit_idrequired | path | string (uuid) | |
authorization | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_AdCopyGenerationData_| Field | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
request_idrequired | string | |||||||
success | true | default true | ||||||
datarequired | AdCopyGenerationData | AdCopyGenerationData fields
| ||||||
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. | ||||||
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.