Extole Profiles API
The Profiles API from Extole — 41 operation(s) for profiles.
The Profiles API from Extole — 41 operation(s) for profiles.
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 Profiles 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: Profiles
paths:
/api/v4/events/share/status/{pollingId}:
get:
deprecated: true
description: Deprecated. Returns the processing status for a prior `POST /api/v4/events/share` call identified by `pollingId`.
operationId: shareEventStatus
parameters:
- in: path
name: pollingId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EventSharePollingResponse'
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: Get share event status
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
/api/v4/me:
get:
description: Returns the profile of the consumer identified by the supplied access token. The response includes the consumer's identity attributes (email, partner user id, name), custom data fields stored in `parameters`, and consent state.
operationId: getMyProfile
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MyProfileResponse'
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: Get the authenticated consumer profile
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
post:
description: Updates identity attributes and consent fields on the profile of the consumer identified by the access token.
operationId: updateMyProfile
requestBody:
content:
application/json:
example:
access_token: access_token
email: email
first_name: first_name
last_name: last_name
partner_user_id: partner_user_id
profile_picture_url: profile_picture_url
schema:
$ref: '#/components/schemas/PersonProfileUpdateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PersonProfileUpdateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
invalid_json:
$ref: '#/components/examples/invalid_json'
invalid_length_first_name:
$ref: '#/components/examples/invalid_length_first_name'
invalid_length_last_name:
$ref: '#/components/examples/invalid_length_last_name'
invalid_parameter:
$ref: '#/components/examples/invalid_parameter'
invalid_person_email:
$ref: '#/components/examples/invalid_person_email'
invalid_person_id:
$ref: '#/components/examples/invalid_person_id'
invalid_profile_picture_url:
$ref: '#/components/examples/invalid_profile_picture_url'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
partner_user_id_already_defined:
$ref: '#/components/examples/partner_user_id_already_defined'
partner_user_id_invalid_length:
$ref: '#/components/examples/partner_user_id_invalid_length'
person_email_already_defined:
$ref: '#/components/examples/person_email_already_defined'
person_not_found:
$ref: '#/components/examples/person_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
'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: Update the authenticated consumer profile
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
/api/v4/me/advocates:
get:
deprecated: true
description: Deprecated. Returns advocates who referred the authenticated consumer.
operationId: getAdvocateRelationships
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/RelationshipResponse'
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
'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: List advocate relationships
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
/api/v4/me/assets:
get:
description: Returns all assets attached to the profile of the consumer identified by the access token. Assets are binary or text files such as wallet passes, QR codes, or uploaded images.
operationId: listAssets
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/AssetResponse'
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
'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: List assets for the authenticated consumer
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
post:
description: Uploads a new asset and attaches it to the authenticated consumer's profile. Supply asset metadata in the `asset` form field and the file content in the `file` form field.
operationId: createAsset
requestBody:
content:
multipart/form-data:
example:
asset:
data_type: PRIVATE
name: name
tags:
- tag
file:
content: {}
contentDisposition:
creationDate: '2025-10-24T09:00:00.000Z'
fileName: fileName
modificationDate: '2025-10-24T09:00:00.000Z'
parameters:
parameters_key: parameters_key
readDate: '2025-10-24T09:00:00.000Z'
size: 1
type: type
entity: {}
fileName: fileName
formDataContentDisposition:
creationDate: '2025-10-24T09:00:00.000Z'
fileName: fileName
modificationDate: '2025-10-24T09:00:00.000Z'
name: name
parameters:
parameters_key: parameters_key
readDate: '2025-10-24T09:00:00.000Z'
size: 1
type: type
headers:
empty: true
headers_key:
- headers_key
mediaType:
parameters:
parameters_key: parameters_key
subtype: subtype
type: type
wildcardSubtype: true
wildcardType: true
messageBodyWorkers: {}
name: name
parameterizedHeaders:
empty: true
parameterizedHeaders_key:
- parameters:
parameters_key: parameters_key
value: value
parent:
bodyParts:
- contentDisposition:
creationDate: '2025-10-24T09:00:00.000Z'
fileName: fileName
modificationDate: '2025-10-24T09:00:00.000Z'
parameters:
parameters_key: parameters_key
readDate: '2025-10-24T09:00:00.000Z'
size: 1
type: type
entity: {}
headers:
empty: true
headers_key:
- headers_key
mediaType:
parameters:
parameters_key: parameters_key
subtype: subtype
type: type
wildcardSubtype: true
wildcardType: true
messageBodyWorkers: {}
parameterizedHeaders:
empty: true
parameterizedHeaders_key:
- parameters:
parameters_key: parameters_key
value: value
providers: {}
contentDisposition:
creationDate: '2025-10-24T09:00:00.000Z'
fileName: fileName
modificationDate: '2025-10-24T09:00:00.000Z'
parameters:
parameters_key: parameters_key
readDate: '2025-10-24T09:00:00.000Z'
size: 1
type: type
entity: {}
headers:
empty: true
headers_key:
- headers_key
mediaType:
parameters:
parameters_key: parameters_key
subtype: subtype
type: type
wildcardSubtype: true
wildcardType: true
messageBodyWorkers: {}
parameterizedHeaders:
empty: true
parameterizedHeaders_key:
- parameters:
parameters_key: parameters_key
value: value
providers: {}
providers: {}
simple: true
value: value
schema:
properties:
asset:
$ref: '#/components/schemas/AssetRequest'
file:
$ref: '#/components/schemas/FormDataBodyPart'
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AssetResponse'
description: Successful response
'400':
content:
application/json:
examples:
asset_limit_exceeded:
$ref: '#/components/examples/asset_limit_exceeded'
asset_mime_type_invalid:
$ref: '#/components/examples/asset_mime_type_invalid'
asset_size_invalid:
$ref: '#/components/examples/asset_size_invalid'
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: Create an asset for the authenticated consumer
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
/api/v4/me/assets/download:
get:
description: Streams the binary or text content of the asset matching the `name` query parameter on the authenticated consumer's profile. Returns HTTP 302 if the content is hosted at a remote URL; returns HTTP 200 with the raw content otherwise.
operationId: downloadAssetByName
parameters:
- in: query
name: name
schema:
type: string
responses:
'200':
content:
'*/*': {}
description: Successful response
'400':
content:
application/json:
examples:
asset_content_not_downloadable:
$ref: '#/components/examples/asset_content_not_downloadable'
asset_not_found:
$ref: '#/components/examples/asset_not_found'
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: Download an asset by name
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
/api/v4/me/assets/{assetId}:
get:
description: Returns metadata for the asset identified by `assetId` on the authenticated consumer's profile. Use the download endpoints to retrieve the asset content.
operationId: readAsset
parameters:
- in: path
name: assetId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AssetResponse'
description: Successful response
'400':
content:
application/json:
examples:
asset_content_not_downloadable:
$ref: '#/components/examples/asset_content_not_downloadable'
asset_not_found:
$ref: '#/components/examples/asset_not_found'
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: Get an asset by ID
tags:
- Profiles
x-extole-bundle: integration-consumer-to-extole
x-extole-visibility: visible
delete:
description: Removes the asset identified by `assetId` from the authenticated consumer's profile and returns the deleted asset metadata.
operationId: deleteAsset
parameters:
- in: path
name: assetId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AssetResponse'
description: Successful response
'400':
content:
application/json:
examples:
asset_content_not_downloada
# --- truncated at 32 KB (247 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/extole/refs/heads/main/openapi/extole-profiles-api-openapi.yml