openapi: 3.0.1 info: description: 'Consumer-to-Extole integration endpoints: consumer event submission, zone rendering, profile management, and SDK-backing operations for browser and native app environments.' title: Integration API - Consumer to Extole Audiences Settings API version: '1.0' servers: - description: Production url: https://{brand}.extole.io variables: brand: default: yourcompany description: Your Extole client subdomain (e.g. 'mycompany' for mycompany.extole.io) security: - HEADER: [] - QUERY: [] - COOKIE: [] tags: - name: Settings paths: /v2/me/clients: get: description: Returns all clients accessible to the currently authenticated staff user. operationId: listMeClients responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/MeClientResponse' type: array description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: List accessible clients tags: - Settings x-extole-bundle: management-expert x-extole-visibility: expert /v2/logo: get: description: Returns the current logo image metadata for the client. operationId: getLogo responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogoResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' logo_content_download_error: $ref: '#/components/examples/logo_content_download_error' logo_not_found: $ref: '#/components/examples/logo_not_found' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Get the client logo tags: - Settings x-extole-bundle: management x-extole-visibility: visible post: description: Uploads a new logo image for the client via multipart form upload. Returns the created logo metadata. operationId: createLogo requestBody: content: multipart/form-data: example: attributes: fileName: fileName size: 1 inputStream: {} schema: $ref: '#/components/schemas/FileInputStreamRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogoResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' logo_already_exists: $ref: '#/components/examples/logo_already_exists' logo_content_empty: $ref: '#/components/examples/logo_content_empty' logo_content_length_exceeded: $ref: '#/components/examples/logo_content_length_exceeded' logo_content_upload_error: $ref: '#/components/examples/logo_content_upload_error' logo_format_not_supported: $ref: '#/components/examples/logo_format_not_supported' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Upload a client logo tags: - Settings x-extole-bundle: management x-extole-visibility: visible delete: description: Archives the current client logo, removing it from active use. Returns the archived logo metadata. operationId: archiveLogo responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogoResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' logo_content_download_error: $ref: '#/components/examples/logo_content_download_error' logo_not_found: $ref: '#/components/examples/logo_not_found' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Archive the client logo tags: - Settings x-extole-bundle: management x-extole-visibility: visible /v2/logo/image: get: description: Downloads the client logo as a PNG image binary. operationId: downloadLogoImage responses: '200': content: image/png: schema: format: binary type: string description: Client logo PNG image. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Download logo image tags: - Settings x-extole-bundle: management x-extole-visibility: visible /v2/timeline-entries: get: description: Returns all campaign timeline entries for the client, optionally filtered by tags. operationId: listTimelineEntries parameters: - in: query name: tags schema: items: type: string nullable: true type: array uniqueItems: true responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/ClientTimelineEntryResponse' type: array description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: List timeline entries tags: - Settings x-extole-bundle: management x-extole-visibility: visible post: description: Creates a new named milestone in the campaign timeline visible in the console. Returns the created entry with its server-assigned name. operationId: createTimelineEntry requestBody: content: application/json: example: date: '2025-10-24T02:00:00-07:00' description: description name: name tags: - tag schema: $ref: '#/components/schemas/ClientTimelineEntryRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClientTimelineEntryResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' date_invalid: $ref: '#/components/examples/date_invalid' date_missing: $ref: '#/components/examples/date_missing' description_invalid: $ref: '#/components/examples/description_invalid' entry_name_exists: $ref: '#/components/examples/entry_name_exists' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' name_invalid: $ref: '#/components/examples/name_invalid' name_missing: $ref: '#/components/examples/name_missing' not_modifiable: $ref: '#/components/examples/not_modifiable' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Create a timeline entry tags: - Settings x-extole-bundle: management x-extole-visibility: visible /v2/timeline-entries/{name}: get: description: Returns the campaign timeline entry for the specified name. operationId: getTimelineEntry parameters: - in: path name: name required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClientTimelineEntryResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' timeline_entry_not_found: $ref: '#/components/examples/timeline_entry_not_found' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Get a timeline entry tags: - Settings x-extole-bundle: management x-extole-visibility: visible put: description: Updates the campaign timeline entry for the specified name. Only fields present in the request body are changed. Returns the updated entry. operationId: updateTimelineEntry parameters: - in: path name: name required: true schema: type: string requestBody: content: application/json: example: date: '2025-10-24T02:00:00-07:00' description: description name: name tags: - tag schema: $ref: '#/components/schemas/UpdateClientTimelineEntryRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClientTimelineEntryResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' date_invalid: $ref: '#/components/examples/date_invalid' date_missing: $ref: '#/components/examples/date_missing' description_invalid: $ref: '#/components/examples/description_invalid' entry_name_exists: $ref: '#/components/examples/entry_name_exists' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' name_invalid: $ref: '#/components/examples/name_invalid' name_missing: $ref: '#/components/examples/name_missing' not_modifiable: $ref: '#/components/examples/not_modifiable' timeline_entry_not_found: $ref: '#/components/examples/timeline_entry_not_found' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Update a timeline entry tags: - Settings x-extole-bundle: management x-extole-visibility: visible delete: description: Removes the campaign timeline entry for the specified name. Returns the deleted entry. operationId: deleteTimelineEntry parameters: - in: path name: name required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClientTimelineEntryResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' not_modifiable: $ref: '#/components/examples/not_modifiable' timeline_entry_not_found: $ref: '#/components/examples/timeline_entry_not_found' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Bad Request '401': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unauthorized '402': content: application/json: examples: payment_required: $ref: '#/components/examples/payment_required' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Payment Required '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' method_unauthorized: $ref: '#/components/examples/method_unauthorized' missing_access_token: $ref: '#/components/examples/missing_access_token' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Forbidden '415': content: application/json: examples: unsupported_media_type: $ref: '#/components/examples/unsupported_media_type' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Unsupported Media Type '429': content: application/json: examples: too_many_requests: $ref: '#/components/examples/too_many_requests' schema: $ref: '#/components/schemas/RestExceptionResponse' description: Too Many Requests summary: Delete a timeline entry tags: - Settings x-extole-bundle: management x-extole-visibility: visible components: examples: invalid_json: summary: invalid_json value: code: invalid_json http_status_code: 400 message: JSON is invalid parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_content_empty: summary: logo_content_empty value: code: logo_content_empty http_status_code: 400 message: Logo file is empty parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_not_found: summary: logo_not_found value: code: logo_not_found http_status_code: 400 message: Logo not found parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 not_modifiable: summary: not_modifiable value: code: not_modifiable http_status_code: 400 message: Entry cannot be modified parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_access_token: summary: missing_access_token value: code: missing_access_token http_status_code: 403 message: No access_token was provided with this request. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 payment_required: summary: payment_required value: code: payment_required http_status_code: 402 message: The access_token provided is associated with an unpaid account. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_content_length_exceeded: summary: logo_content_length_exceeded value: code: logo_content_length_exceeded http_status_code: 400 message: Logo content exceed max size parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 date_invalid: summary: date_invalid value: code: date_invalid http_status_code: 400 message: Date is invalid or not ISO-8601 compliant parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 unsupported_media_type: summary: unsupported_media_type value: code: unsupported_media_type http_status_code: 415 message: Request had an unsupported or no media type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 method_unauthorized: summary: method_unauthorized value: code: method_unauthorized http_status_code: 401 message: Unauthorized access to this endpoint parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 date_missing: summary: date_missing value: code: date_missing http_status_code: 400 message: Date is missing parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_content_download_error: summary: logo_content_download_error value: code: logo_content_download_error http_status_code: 400 message: Logo content could not be downloaded parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 name_invalid: summary: name_invalid value: code: name_invalid http_status_code: 400 message: Name is mandatory, size should be between 1 and 255 parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_format_not_supported: summary: logo_format_not_supported value: code: logo_format_not_supported http_status_code: 400 message: Logo format not supported parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_request_body: summary: missing_request_body value: code: missing_request_body http_status_code: 400 message: Missing request body parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 binding_error: summary: binding_error value: code: binding_error http_status_code: 400 message: Argument is not of the expected type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 access_denied: summary: access_denied value: code: access_denied http_status_code: 403 message: The access_token provided is not permitted to access the specified resource. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_already_exists: summary: logo_already_exists value: code: logo_already_exists http_status_code: 400 message: Logo already exists parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 name_missing: summary: name_missing value: code: name_missing http_status_code: 403 message: Name must be a non-null value upon creation parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 too_many_requests: summary: too_many_requests value: code: too_many_requests http_status_code: 429 message: The server is unable to process your request at the moment, please retry later. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_parameter: summary: invalid_parameter value: code: invalid_parameter http_status_code: 400 message: Parameter is invalid. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 timeline_entry_not_found: summary: timeline_entry_not_found value: code: timeline_entry_not_found http_status_code: 400 message: Timeline entry not found parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 description_invalid: summary: description_invalid value: code: description_invalid http_status_code: 400 message: Description is of invalid format or length parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 entry_name_exists: summary: entry_name_exists value: code: entry_name_exists http_status_code: 400 message: Entry for given name already exists parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 logo_content_upload_error: summary: logo_content_upload_error value: code: logo_content_upload_error http_status_code: 400 message: Logo content could not be uploaded parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 schemas: MeClientResponse: properties: client_id: type: string name: type: string required: - client_id - name type: object LogoResponse: properties: created_date: $ref: '#/components/schemas/ZonedDateTime' logo_id: type: string updated_date: $ref: '#/components/schemas/ZonedDateTime' required: - created_date - logo_id - updated_date type: object FileInputStreamRequest: properties: attributes: $ref: '#/components/schemas/FileAttributes' inputStream: type: object required: - attributes - inputStream type: object ClientTimelineEntryRequest: properties: date: $ref: '#/components/schemas/ZonedDateTime' description: nullable: true type: string name: type: string tags: items: type: string type: array uniqueItems: true required: - date - description - name - tags type: object ClientTimelineEntryResponse: properties: date: $ref: '#/components/schemas/ZonedDateTime' description: nullable: true type: string name: type: string tags: items: type: string type: array uniqueItems: true userId: type: string required: - date - description - name - tags - userId type: object UpdateClientTimelineEntryRequest: properties: date: $ref: '#/components/schemas/ZonedDateTime' description: nullable: true type: string name: nullable: true type: string tags: items: type: string nullable: true type: array uniqueItems: true required: - date - description - name - tags type: object FileAttributes: properties: fileName: type: string size: format: int64 type: integer type: object ZonedDateTime: description: '[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.' example: '2025-10-24T02:00:00-07:00' pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$ type: string RestExceptionResponse: description: Represents the API error response properties: code: description: Specific error code for this error type, documented per endpoint type: string http_status_code: description: HTTP status code that was returned with this error, useful if client get response code format: int32 type: integer message: description: User readable English description of the error type: string parameters: additionalProperties: description: Attributes related to the error, varies be error code, documented per endpoint type: object description: Attributes related to the error, varies be error code, documented per endpoint type: object unique_id: description: Unique id associated with this error, useful for discussions with Extole type: string required: - code - http_status_code - message - parameters - unique_id type: object securitySchemes: COOKIE: in: cookie name: extole_token type: apiKey HEADER: in: header name: Authorization type: apiKey x-bearer-format: bearer QUERY: in: query name: access_token type: apiKey x-tagGroups: - name: Integration API - Consumer to Extole tags: - Authentication - Content - Email - Events - Persons - Profile Assets - Profiles