Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/vtex-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: VTex Profile System - PII data architecture Profiles API
description: '>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.'
contact: {}
version: '1.0'
servers:
- url: https://{accountName}.{environment}.com.br
description: VTEX server URL.
variables:
accountName:
description: Name of the VTEX account. Used as part of the URL.
default: apiexamples
environment:
description: Environment to use. Used as part of the URL.
enum:
- vtexcommercestable
default: vtexcommercestable
security:
- appKey: []
appToken: []
- VtexIdclientAutCookie: []
tags:
- name: Profiles
paths:
/api/storage/profile-system/profiles:
post:
tags:
- Profiles
summary: VTex Create client profile
description: 'Creates new client profile.
You can send custom fields in the request body and they will be saved as part of your document. Therefore, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
The `id` field returned by this request is the `profileId` used to retrieve information on a specific profile later.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: CreateClientProfile
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/ttl'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
id:
$ref: '#/components/schemas/ProfileId'
meta:
$ref: '#/components/schemas/ProfileMeta'
document:
$ref: '#/components/schemas/Profile'
example:
id: c2cbebba-214e-40b2-b68f-98f862e755d5
meta:
version: 27112371-a71b-45d6-b3bc-93436a3a0b4f
author: 82a2b53d-39be-4f49-bb7c-8971b58cb7dc
creationDate: '2022-01-05T15:41:37.5009471+00:00'
lastUpdateDate: '2022-01-05T15:41:37.5009471+00:00'
document:
firstName: John
lastName: Doe
email: john.doe@example.com
birthDate: '1925-11-17'
document: '12345678911'
documentType: CPF
'{customField}': '{value}'
deprecated: false
/api/storage/profile-system/profiles/{profileId}:
get:
tags:
- Profiles
summary: VTex Get profile
description: 'Retrieves the information of a specific client, by its `profileId`.
> Since your store''s profile schema is customizable, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
> For security and privacy reasons, this request returns masked profile data. For unmasked information, see Get unmasked profile.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: GetProfile
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/alternativeKey'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MaskedProfileResponse'
example:
- id: 70caf394-8534-447e-a0ca-1803c669c771
meta:
version: abc
author: e40e0b6d-0605-4fa6-8176-1d69fbaf0818
creationDate: 13/12/2021T00:00:00Z
lastUpdate: 13/12/2021T00:00:00Z
document:
firstName: J***
lastName: D**
email: j***.d**@e******.c**
birthDate: '1925-11-17'
document: 1**********
documentType: CPF
'{customField}': '{value}'
deprecated: false
patch:
tags:
- Profiles
summary: VTex Update client profile
description: 'Updates one or more fields of an existing client profile.
> Since your store''s profile schema is customizable, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: UpdateClientProfile
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/alternativeKey'
- $ref: '#/components/parameters/ttl'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UnmaskedProfileResponse'
example:
id: 70caf394-8534-447e-a0ca-1803c669c771
document:
firstName: John
lastName: Doe
email: john.doe@example.com
birthDate: '1925-11-17'
document: '12345678911'
documentType: CPF
meta:
version: abc
author: e40e0b6d-0605-4fa6-8176-1d69fbaf0818
creationDate: '2022-01-05T15:41:37.5009471+00:00'
lastUpdate: '2022-01-17T15:41:37.5009471+00:00'
deprecated: false
delete:
tags:
- Profiles
summary: VTex Delete client profile
description: 'Deletes a client profile by `profileId`.
>❗ This endpoint is not suitable for granting a shopper''s right to erasure. For that purpose, open a support ticket, according to the instructions in the section Request erasure via support of the shopper data erasure guide.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: DeleteClientProfile
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
responses:
'204':
description: No content
deprecated: false
/api/storage/profile-system/profiles/{profileId}/unmask:
get:
tags:
- Profiles
summary: VTex Get unmasked profile
description: 'Retrieves unmasked information of a specific client, by its `profileId`.
> Since your store''s profile schema is customizable, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: GetUnmaskedProfile
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/reason'
- $ref: '#/components/parameters/alternativeKey'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
description: Array with unmasked profile information.
items:
$ref: '#/components/schemas/UnmaskedProfileResponse'
example:
- id: 70caf394-8534-447e-a0ca-1803c669c771
document:
firstName: John
lastName: Doe
email: john.doe@example.com
birthDate: '1925-11-17'
document: '12345678911'
documentType: CPF
meta:
version: abc
author: e40e0b6d-0605-4fa6-8176-1d69fbaf0818
creationDate: '2022-01-05T15:41:37.5009471+00:00'
lastUpdate: '2022-01-17T15:41:37.5009471+00:00'
deprecated: false
/api/storage/profile-system/profiles/{profileId}/versions/{profileVersionId}:
get:
tags:
- Profiles
summary: VTex Get profile by version
description: 'Retrieves the information of a specific version of a client profile.
> Since your store''s profile schema is customizable, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
> For security and privacy reasons, this request returns masked profile data. For unmasked information, see Get unmasked profile by version.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: GetProfileByVersion
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/profileVersionId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MaskedProfileResponseByVersion'
example:
- id: 70caf394-8534-447e-a0ca-1803c669c771
document:
firstName: J***
lastName: G****
email: j***********
birthDate: '1925-11-17'
document: 1********
documentType: CPF
'{customField}': '{value}'
meta:
version: bb996089-b77c-4bf3-be35-b99b6d91f91c
author: e40e0b6d-0605-4fa6-8176-1d69fbaf0818
creationDate: '2022-01-05T15:41:37.5009471+00:00'
lastUpdate: '2022-01-15T15:41:37.5009471+00:00'
deprecated: false
/api/storage/profile-system/profiles/{profileId}/versions/{profileVersionId}/unmask:
get:
tags:
- Profiles
summary: VTex Get unmasked profile by version
description: 'Retrieves unmasked information of a specific version of a client profile.
> Since your store''s profile schema is customizable, the schema and examples presented below may differ from yours. Your integration must be adapted accordingly.
Learn more about the Profile System and its other API endpoints.
>⚠️ The Profile System is only compatible with stores using the PII data architecture from Data Protection Plus, which is in closed beta phase, only available in select regions.
>
> This feature is part of VTEX Shield. If you are already a VTEX customer and want to adopt VTEX Shield for your business, please contact Commercial Support. Additional fees may apply. If you are not yet a customer but are interested in this solution, please complete our contact form.
## Permissions
Any user or application key must have at least one of the appropriate License Manager resources to be able to successfully run this request. Otherwise they will receive a status code `403` error. These are the applicable resources for this endpoint:
| **Product** | **Category** | **Resource** |
| --------------- | ----------------- | ----------------- |
| Profile System | Documents | **Get Item** |
| Profile System | Documents | **Save and Update Item** |
| Profile System | Documents | **Delete Item** |
There are no applicable predefined roles for this resource list. You must create a custom role and add at least one of the resources above in order to use this endpoint.To learn more about machine authentication at VTEX, see Authentication overview.
>❗ To prevent integrations from having excessive permissions, consider the best practices for managing app keys when assigning License Manager roles to integrations.'
operationId: GetUnmaskedProfileByVersion
parameters:
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Accept'
- $ref: '#/components/parameters/profileId'
- $ref: '#/components/parameters/profileVersionId'
- $ref: '#/components/parameters/reason'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
description: Array with unmasked profile information.
items:
$ref: '#/components/schemas/UnmaskedProfileResponse'
example:
- id: 70caf394-8534-447e-a0ca-1803c669c771
document:
firstName: John
lastName: Doe
email: john.doe@example.com
birthDate: '1925-11-17'
document: '12345678911'
documentType: CPF
'{customField}': '{value}'
meta:
version: abc
author: e40e0b6d-0605-4fa6-8176-1d69fbaf0818
creationDate: '2022-01-05T15:41:37.5009471+00:00'
lastUpdate: '2022-01-17T15:41:37.5009471+00:00'
deprecated: false
components:
parameters:
alternativeKey:
name: alternativeKey
in: query
description: 'The `profileId` path parameter may be substituted by other profile fields in this request. When making this request, send the `alternativeKey` parameter with a value equal to the key of the field you wish to use as `profileId`.
> Currently, there are two possible values for this parameter: `email` and `document`.'
required: false
style: form
schema:
type: string
example: email
ttl:
name: ttl
in: query
description: 'This parameter sets the the Time To Live (TTL), in days, of the specific document being created or updated with this request. After this period of time from the moment of the request, the document is deleted. By sending this parameter you override the TTL set for the schema.
> Currently, the available default document schemas have no TTL. This means that documents are stored indefinitely, unless a TTL is sent when creating or updating.'
required: false
style: form
schema:
type: integer
example: 365
Content-Type:
name: Content-Type
in: header
description: Type of the content being sent.
required: true
style: simple
schema:
type: string
example: application/json
Accept:
name: Accept
in: header
description: HTTP Client Negotiation _Accept_ Header. Indicates the types of responses the client can understand.
required: true
style: simple
schema:
type: string
example: application/json
profileVersionId:
name: profileVersionId
in: path
description: ID of the version of the client's profile as returned by endpoints that create or update profile information in the `version` field.
required: true
style: simple
schema:
type: string
example: 70caf394-8534-447e-a0ca-1803c669c771
profileId:
name: profileId
in: path
description: ID of the client's profile as returned by the [Create profile](https://developers.vtex.com/docs/api-reference/profile-system#post-/api/storage/profile-system/profiles) endpoint's response, in the `id` field. It can also be an `alternativeKey` according to your custom profile schema. In this case, this request should also send the `alternativeKey` parameter.
required: true
style: simple
schema:
type: string
example: 70caf394-8534-447e-a0ca-1803c669c771
reason:
name: reason
in: query
description: Reason for requesting unmasked data.
required: true
style: form
schema:
type: string
example: data-validation
schemas:
MaskedProfileResponse:
title: Masked profile response
type: array
description: Array containing masked profile information.
items:
type: object
description: Masked profile information.
properties:
id:
$ref: '#/components/schemas/ProfileId'
meta:
$ref: '#/components/schemas/ProfileMeta'
document:
$ref: '#/components/schemas/Profile'
Profile:
title: Profile
type: object
description: Profile schema.
required:
- firstName
- lastName
- email
- document
- documentType
properties:
firstName:
type: string
description: Client's first name.
example: John
lastName:
type: string
description: Client's last name.
example: Doe
email:
type: string
description: Client's email address.
example: john.doe@example.com
birthDate:
type: string
description: Client's birth date in ISO 8601 format.
example: '1925-11-17'
document:
type: string
description: Client's document.
example: '12345678900'
documentType:
type: string
description: Type of document informed in `document`.
example: CPF
'{customField}':
type: string
description: 'Name of custom field defined in [Create or delete custom fields](https://developers.vtex.com/docs/api-reference/profile-system#put-/api/storage/profile-system/schemas/profileSystem/custom). Can be of any type: string, number, boolean, array or object.'
example: '{value}'
MaskedProfileResponseByVersion:
title: Masked profile response
type: array
description: Array containing masked profile information.
items:
type: object
description: Masked profile information.
properties:
id:
$ref: '#/components/schemas/ProfileId'
document:
$ref: '#/components/schemas/Profile'
meta:
$ref: '#/components/schemas/ProfileMeta'
ProfileMeta:
title: Profile metadata
type: object
description: Profile metadata.
required:
- version
- author
- creationDate
- lastUpdate
properties:
version:
type: string
description: Unique identifier of the profile version.
example: 27112371-a71b-45d6-b3bc-93436a3a0b4f
author:
type: string
description: Unique identifier of the user who created the profile.
example: 82a2b53d-39be-4f49-bb7c-8971b58cb7dc
creationDate:
type: string
description: Date when the profile was created in ISO 8601 format.
example: '2022-01-05T15:41:37.5009471+00:00'
lastUpdate:
type: string
description: Date when the profile was last updated in ISO 8601 format.
example: '2022-01-05T15:41:37.5009471+00:00'
ProfileId:
title: id
type: string
description: ID of the client's profile.
example: c2cbebba-214e-40b2-b68f-98f862e755d5
UnmaskedProfileResponse:
title: Unmasked profile response
type: object
description: Unmasked profile response.
properties:
id:
$ref: '#/components/schemas/ProfileId'
document:
$ref: '#/components/schemas/Profile'
meta:
$ref: '#/components/schemas/ProfileMeta'
securitySchemes:
appKey:
type: apiKey
in: header
name: X-VTEX-API-AppKey
description: Unique identifier of the [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys).
appToken:
type: apiKey
in: header
name: X-VTEX-API-AppToken
description: Secret token of the [application key](https://developers.vtex.com/docs/guides/api-authentication-using-application-keys).
VtexIdclientAutCookie:
type: apiKey
in: header
name: VtexIdclientAutCookie
description: '[User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours.'