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 Debug 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: Debug paths: /v4/debug/mode/{container}: get: description: Sets or clears the `container` cookie used to pin the consumer API to a specific deployment container. Pass `enable=false` to disable. Expert-only debugging endpoint. operationId: setEnvironmentCookie parameters: - in: path name: container required: true schema: type: string - in: query name: enable schema: default: true type: boolean responses: '200': content: '*/*': {} 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 '403': content: application/json: examples: invalid_container: $ref: '#/components/examples/invalid_container' method_unauthorized: $ref: '#/components/examples/method_unauthorized' 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: Set the debug environment container cookie tags: - Debug x-extole-bundle: management-expert x-extole-visibility: expert /v4/debug/client-events: post: operationId: createDebugClientEvent requestBody: content: application/json: example: data: data_key: data_key level: DEBUG message: message name: name tags: - tag schema: $ref: '#/components/schemas/CreateCreativeClientEventRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCreativeClientEventRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateCreativeClientEventResponse' 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 '403': content: application/json: examples: access_denied: $ref: '#/components/examples/access_denied' expired_access_token: $ref: '#/components/examples/expired_access_token' invalid_access_token: $ref: '#/components/examples/invalid_access_token' jwt_authentication_error: $ref: '#/components/examples/jwt_authentication_error' 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: Used to send client events to Extole tags: - Debug x-extole-bundle: management-expert x-extole-visibility: expert /v4/debug/content-security-policy-reports: post: description: Accepts a browser Content-Security-Policy violation report for logging and investigation. Expert-only debugging endpoint. operationId: submit requestBody: content: application/json: example: csp-report: blocked-uri: blocked-uri disposition: disposition document-uri: document-uri effective-directive: effective-directive original-policy: original-policy referrer: referrer script-sample: script-sample status-code: status-code violated-directive: violated-directive schema: $ref: '#/components/schemas/ContentSecurityPolicyReportRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ContentSecurityPolicyReportRequest' responses: '200': content: '*/*': {} 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 '403': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' 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: Submit a content security policy report tags: - Debug x-extole-bundle: management-expert x-extole-visibility: expert /v4/debug/logs: post: operationId: createDebugLog requestBody: content: application/json: example: level: DEBUG message: message schema: $ref: '#/components/schemas/CreateCreativeLogRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCreativeLogRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/CreateCreativeLogResponse' 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 '403': content: application/json: examples: method_unauthorized: $ref: '#/components/examples/method_unauthorized' 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: Used to send log messages to Extole tags: - Debug x-extole-bundle: management-expert x-extole-visibility: expert 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 expired_access_token: summary: expired_access_token value: code: expired_access_token http_status_code: 403 message: The access_token provided with this request has expired. 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 jwt_authentication_error: summary: jwt_authentication_error value: code: jwt_authentication_error http_status_code: 403 message: The jwt authentication failed. 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 invalid_access_token: summary: invalid_access_token value: code: invalid_access_token http_status_code: 403 message: The access_token provided with this request is invalid. 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 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 invalid_container: summary: invalid_container value: code: invalid_container http_status_code: 403 message: Container only allows alphanumeric or - characters. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 schemas: ContentSecurityPolicyReportRequest: properties: csp-report: $ref: '#/components/schemas/ReportRequest' required: - csp-report type: object CreateCreativeLogResponse: properties: polling_id: type: string required: - polling_id type: object CreateCreativeLogRequest: properties: level: enum: - DEBUG - ERROR - INFO - WARN nullable: true type: string message: type: string required: - level - message type: object 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 CreateCreativeClientEventRequest: properties: data: additionalProperties: type: string nullable: true type: object level: enum: - DEBUG - ERROR - INFO - WARN nullable: true type: string message: type: string name: type: string tags: items: type: string nullable: true type: array uniqueItems: true required: - data - level - message - name - tags type: object ReportRequest: nullable: true properties: blocked-uri: nullable: true type: string disposition: nullable: true type: string document-uri: nullable: true type: string effective-directive: nullable: true type: string original-policy: nullable: true type: string referrer: nullable: true type: string script-sample: nullable: true type: string status-code: nullable: true type: string violated-directive: nullable: true type: string type: object CreateCreativeClientEventResponse: properties: data: additionalProperties: type: string type: object event_id: type: string tags: items: type: string type: array uniqueItems: true required: - data - event_id - tags 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