VTEX Attachment API

The Attachment API from VTEX — 3 operation(s) for attachment.

Operations 5

GET /api/catalog/pvt/attachment/{attachmentid} VTex Get attachment by ID #
PUT /api/catalog/pvt/attachment/{attachmentid} VTex Update attachment #
DELETE /api/catalog/pvt/attachment/{attachmentid} VTex Delete attachment #
POST /api/catalog/pvt/attachment VTex Create attachment #
GET /api/catalog/pvt/attachments VTex Get all attachments #

Documentation

📖
Documentation
https://developers.vtex.com/docs/guides/how-the-integration-protocol-between-vtex-and-antifraud-companies-works
📖
Documentation
https://developers.vtex.com/docs/guides/bulk-import-buyer-organizations-spreadsheet
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-api-seller-portal-overview
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-overview
📖
Documentation
https://developers.vtex.com/docs/guides/checkout-overview
📖
Documentation
https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0
📖
Documentation
https://help.vtex.com/en/tutorial/data-subject-rights--6imchxTx09icupKMbzHVIM
📖
Documentation
https://developers.vtex.com/docs/api-reference/do-api
📖
Documentation
https://developers.vtex.com/docs/guides/managing-vtex-gift-cards
📖
Documentation
https://developers.vtex.com/docs/guides/gift-card-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/faststore/headless-cms-overview
📖
Documentation
https://developers.vtex.com/docs/api-reference/vtex-id-api
📖
Documentation
https://help.vtex.com/en/tracks/vtex-intelligent-search--19wrbB7nEQcmwzDPl1l4Cb/3qgT47zY08biLP3d5os3DG
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search@1.0.8
📖
Documentation
https://help.vtex.com/en/tracks/cms--2YcpgIljVaLVQYMzxQbc3z/1oN446gRGcR2s70RvBCAmj
📖
Documentation
https://developers.vtex.com/docs/guides/search-overview
📖
Documentation
https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3
📖
Documentation
https://developers.vtex.com/docs/guides/fulfillment
📖
Documentation
https://developers.vtex.com/docs/guides/marketplace-overview
📖
Documentation
https://developers.vtex.com/updates/release-notes/marketplace-protocol-documentation-update
📖
Documentation
https://developers.vtex.com/docs/guides/external-marketplace-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-connector
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/master-data--4otjBnR27u4WUIciQsmkAw
📖
Documentation
https://help.vtex.com/en/tutorial/understanding-the-message-center--tutorials_84
📖
Documentation
https://developers.vtex.com/docs/guides/orders-overview
📖
Documentation
https://developers.vtex.com/docs/guides/changes-in-vtex-features-behavior-to-handle-pii-data
📖
Documentation
https://help.vtex.com/en/tutorial/payment-provider-protocol--RdsT2spdq80MMwwOeEq0m
📖
Documentation
https://developers.vtex.com/docs/guides/payments-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/vtex-pick-and-pack-last-mile--HN7WKV0xoq2ssVjsJlfzr
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-io-documentation-policies
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-hub
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-overview
📖
Documentation
https://developers.vtex.com/docs/guides/profile-system
📖
Documentation
https://developers.vtex.com/docs/guides/promotions-overview
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.reviews-and-ratings
📖
Documentation
https://developers.vtex.com/docs/guides/sent-offers-integration-guide-connectors
📖
Documentation
https://developers.vtex.com/docs/guides/sessions-system-overview
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-shipping-network
📖
Documentation
https://help.vtex.com/en/tutorial/sku-bindings--1SmrVgNwjJX17hdqwLa0TX
📖
Documentation
https://developers.vtex.com/docs/guides/subscriptions
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search/suggestions
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-tracking

Specifications

Work with this as data

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-attachment-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 Specification

vtex-attachment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VTex Catalog Attachment API
  description: '> Check the new Catalog onboarding guide.'
  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: Attachment
paths:
  /api/catalog/pvt/attachment/{attachmentid}:
    get:
      tags:
      - Attachment
      summary: VTex Get attachment by ID
      description: 'Gets information about a registered attachment.

        >⚠️ To understand the specific syntax for Assembly Options attachments, read the Assembly Options documentation.


        ## 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** |

        | --------------- | ----------------- | ----------------- |

        | Catalog | Configuration | **CMS Management** |


        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.'
      parameters:
      - name: attachmentid
        in: path
        required: true
        description: Attachment ID.
        schema:
          type: string
          example: '8'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
      operationId: getApiCatalogPvtAttachmentByAttachmentid
      x-operation-id-source: derived
    put:
      tags:
      - Attachment
      summary: VTex Update attachment
      description: 'Updates a previously existing SKU attachment with new information.

        >⚠️ To understand the specific syntax for Assembly Options attachments, read the Assembly Options documentation.


        ## 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** |

        | --------------- | ----------------- | ----------------- |

        | Catalog | Configuration | **CMS Management** |


        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.'
      parameters:
      - name: attachmentid
        in: path
        required: true
        description: Attachment ID.
        schema:
          type: string
          example: vtexcommercestable
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
      operationId: putApiCatalogPvtAttachmentByAttachmentid
      x-operation-id-source: derived
    delete:
      tags:
      - Attachment
      summary: VTex Delete attachment
      description: 'Deletes a previously existing SKU attachment.


        ## 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** |

        | --------------- | ----------------- | ----------------- |

        | Catalog | Configuration | **CMS Management** |


        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.'
      parameters:
      - name: attachmentid
        in: path
        required: true
        description: Attachment ID.
        schema:
          type: string
          example: vtexcommercestable
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: OK
      operationId: deleteApiCatalogPvtAttachmentByAttachmentid
      x-operation-id-source: derived
  /api/catalog/pvt/attachment:
    post:
      tags:
      - Attachment
      summary: VTex Create attachment
      description: 'Creates a new SKU attachment.

        >⚠️ To understand the specific syntax for Assembly Options attachments, read the Assembly Options documentation.


        ## 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** |

        | --------------- | ----------------- | ----------------- |

        | Catalog | Configuration | **CMS Management** |


        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.'
      parameters:
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
      operationId: postApiCatalogPvtAttachment
      x-operation-id-source: derived
  /api/catalog/pvt/attachments:
    get:
      tags:
      - Attachment
      summary: VTex Get all attachments
      description: 'Retrieves information about all registered attachments.

        >⚠️ To understand the specific syntax for Assembly Options attachments, read the Assembly Options documentation.


        ## 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** |

        | --------------- | ----------------- | ----------------- |

        | Catalog | Configuration | **CMS Management** |


        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.'
      parameters:
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  Page:
                    type: integer
                    description: Current page of results.
                    example: 1
                  Size:
                    type: integer
                    description: Total number of results in the current page.
                    example: 11
                  TotalRows:
                    type: integer
                    description: Total number of rows with results.
                    example: 11
                  TotalPage:
                    type: integer
                    description: Total number of pages with results.
                    example: 1
                  Data:
                    type: array
                    description: Array containing attachments data.
                    items:
                      $ref: '#/components/schemas/AttachmentResponse'
      operationId: getApiCatalogPvtAttachments
      x-operation-id-source: derived
components:
  schemas:
    AttachmentResponse:
      type: object
      required:
      - Id
      - Name
      - IsRequired
      - IsActive
      - Domains
      properties:
        Id:
          type: integer
          description: Attachment ID.
          example: 8
        Name:
          type: string
          description: Attachment name.
          example: Shirt customization
        IsRequired:
          type: boolean
          description: Defines if the attachment is required or not.
          example: false
        IsActive:
          type: boolean
          description: Defines if the attachment is active or not.
          example: false
        Domains:
          type: array
          description: List of characteristics related to the attachment.
          items:
            type: object
            properties:
              FieldName:
                type: string
                description: Attachment key name.
                example: Number
              MaxCaracters:
                type: string
                description: Maximum number of characters in the attachment key.
                example: '1'
              DomainValues:
                type: string
                description: Allowed key values.
                example: 7,9,10
      example:
        Id: 8
        Name: Ingredients
        IsRequired: true
        IsActive: true
        Domains:
        - FieldName: Sauce
          MaxCaracters: ''
          DomainValues: '[1-2]#9[1-1][1]basic;#11[0-1][1]basic'
        - FieldName: Toppings
          MaxCaracters: ''
          DomainValues: '[0-10]#8[0-3][0]medium;#9[0-3][0]medium;#10[0-3][0]medium;#11[0-3][0]medium;#36[0-3][0]medium;#37[0-3][0]medium;#38[0-3][0]medium'
    AttachmentRequest:
      type: object
      required:
      - Name
      - IsRequired
      - IsActive
      - Domains
      properties:
        Name:
          type: string
          description: Attachment name.
          example: Shirt customization
        IsRequired:
          type: boolean
          description: Defines if the attachment is required or not.
          example: false
        IsActive:
          type: boolean
          description: Defines if the attachment is active or not.
          example: false
        Domains:
          type: array
          description: List of characteristics related to the attachment.
          items:
            type: object
            properties:
              FieldName:
                type: string
                description: Attachment key name.
                example: Number
              MaxCaracters:
                type: string
                description: Maximum number of characters in the attachment key.
                example: '1'
              DomainValues:
                type: string
                description: Allowed key values.
                example: 7,9,10
      example:
        Name: Ingredients
        IsRequired: true
        IsActive: true
        Domains:
        - FieldName: Sauce
          MaxCaracters: ''
          DomainValues: '[1-2]#9[1-1][1]basic;#11[0-1][1]basic'
        - FieldName: Toppings
          MaxCaracters: ''
          DomainValues: '[0-10]#8[0-3][0]medium;#9[0-3][0]medium;#10[0-3][0]medium;#11[0-3][0]medium;#36[0-3][0]medium;#37[0-3][0]medium;#38[0-3][0]medium'
  parameters:
    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
        default: application/json
    Content-Type:
      name: Content-Type
      in: header
      description: Type of the content being sent.
      required: true
      style: simple
      schema:
        type: string
        default: application/json
  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.'