Takealot Update an offer API

The Update an offer API from Takealot — 2 operation(s) for update an offer.

Operations 2

PATCH /v2/offers/offer/{identifier} Update An Offer (v2) #
PATCH /v2/offers/offer Update An Offer (v2) #

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/takealot-update-an-offer-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

takealot-update-an-offer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Takealot Seller Create a batch Update an offer API
  description: The Takealot Seller API for Offers represents the initial phase of the Seller API. With this you will be able to manage your offers in an automated and scalable way.  Please ensure you have read the documentation for the Seller API, found at https://sellerportal.takealot.com/api, for an introduction and important information before attempting to use this API.  Please note that none of these requests are authorised if you are trying via the "try it out" button.  You will need to generate an API key and attach an Authorization header to each request in order to be correctly authorised against our API. This information can be found on the Seller Portal - https://seller.takealot.com/api/seller-api.  The below documentation describes each endpoint of the API.
  version: '2.0'
servers:
- url: https://seller-api.takealot.com/
tags:
- name: Update an offer
paths:
  /v2/offers/offer/{identifier}:
    patch:
      operationId: update_offer_by_identifier_v2
      description: Update an offer by providing an identifier for the offer
      summary: Update An Offer (v2)
      parameters:
      - name: identifier
        in: path
        description: Either Takealot's Offer ID, the Barcode or your SKU for the offer. Prepend with ID, BARCODE, or SKU. e.g. ID234, BARCODE3223, SKUDF22. Defaults to Offer ID.
        required: true
        schema:
          type: string
      tags:
      - Update an offer
      responses:
        '200':
          description: OK
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            application/pdf:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            text/html:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
        '400':
          description: Bad Request Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '403':
          description: Forbidden Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Not Found Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '500':
          description: Server Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2OfferSingleUpdate'
        required: true
  /v2/offers/offer:
    patch:
      operationId: update_offer_by_identifier_query_v2
      description: Update an offer by providing an identifier for the offer
      summary: Update An Offer (v2)
      parameters:
      - name: identifier
        in: query
        description: Either Takealot's Offer ID, the Barcode or your SKU for the offer. Prepend with ID, BARCODE, or SKU. e.g. ID234, BARCODE3223, SKUDF22. Defaults to Offer ID.
        required: true
        schema:
          type: string
      tags:
      - Update an offer
      responses:
        '200':
          description: OK
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            text/csv:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            application/pdf:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
            text/html:
              schema:
                $ref: '#/components/schemas/V2OfferUpdateSuccessResponse'
        '400':
          description: Bad Request Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '403':
          description: Forbidden Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Not Found Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '500':
          description: Server Error
          headers:
            x-RateLimit-Limit:
              schema:
                type: integer
            x-RateLimit-Remaining:
              schema:
                type: integer
            x-RateLimit-Reset:
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/csv:
              schema:
                type: object
                properties:
                  message:
                    type: string
            application/pdf:
              schema:
                type: object
                properties:
                  message:
                    type: string
            text/html:
              schema:
                type: object
                properties:
                  message:
                    type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2OfferSingleUpdate'
        required: true
components:
  schemas:
    V2SalesUnits:
      type: object
      properties:
        warehouse_id:
          type: integer
        sales_units:
          type: integer
    V2OfferLeadtimeStock:
      type: object
      properties:
        merchant_warehouse:
          type: object
          properties:
            warehouse_id:
              type: integer
            name:
              type: string
        quantity_available:
          type: integer
    V2OfferSingleUpdate:
      type: object
      properties:
        sku:
          type: string
          description: The unique SKU of the offer. Please send us a unique sku whose length is less than 256 characters.
          maxLength: 255
        selling_price:
          type: integer
          description: The price at which the offer will sell for on Takealot (promotion prices will be prioitised). Please ensure you supply us with a positive whole number.
        rrp:
          type: integer
          description: The original price of the offer. Please ensure you supply us with a positive whole number.
        leadtime_days:
          type: integer
          description: The leadtime days of the offer. You can remove leadtime days from your offer by sending through -1.
        leadtime_stock:
          type: array
          description: The leadtime stock of the offer. Please ensure that the merchant_warehouse_id is correct, found at https://seller.takealot.com/api/seller-api/offers and send a positive whole number for the quantity.
          items:
            type: object
            properties:
              merchant_warehouse_id:
                type: integer
              quantity:
                type: integer
        status_action:
          type: string
          description: This allows you to set the status of the offer to 'Disabled by Seller' (by sending through Disable) or 'Buyable' or 'Not Buyable' (by sending through Re-enable), depending on what rules are satisfied.
          enum:
          - Disable
          - Re-enable
    V2StockCover:
      type: object
      description: please note that 0 means there is no stock and hence no cover. -1 means there have been no sales units in the past 30 days hence stock cover cannot be determined.
      properties:
        warehouse_id:
          type: integer
        stock_cover_days:
          type: integer
    V2OfferWarehouseStock:
      type: object
      properties:
        warehouse:
          type: object
          properties:
            warehouse_id:
              type: integer
            name:
              type: string
        quantity_available:
          type: integer
    V2Offer:
      type: object
      properties:
        tsin_id:
          type: integer
        offer_id:
          type: integer
        sku:
          type: string
        barcode:
          type: string
        product_label_number:
          type: string
        selling_price:
          type: integer
        rrp:
          type: integer
        leadtime_days:
          type: integer
        leadtime_stock:
          type: array
          items:
            $ref: '#/components/schemas/V2OfferLeadtimeStock'
        status:
          type: string
        title:
          type: string
        offer_url:
          type: string
        stock_cover:
          type: array
          items:
            $ref: '#/components/schemas/V2StockCover'
        sales_units:
          type: array
          items:
            $ref: '#/components/schemas/V2SalesUnits'
        discount:
          type: string
        discount_shown:
          type: boolean
        storage_fee_eligible:
          type: boolean
        date_created:
          type: string
        stock_at_takealot_total:
          type: integer
        total_excess_takealot_stock:
          type: integer
        stock_at_takealot:
          type: array
          items:
            $ref: '#/components/schemas/V2OfferWarehouseStock'
        stock_on_way:
          type: array
          items:
            $ref: '#/components/schemas/V2OfferWarehouseStock'
        total_stock_on_way:
          type: integer
        total_stock_cover:
          type: integer
        catalogue_quality_score:
          type: integer
    V2OfferUpdateSuccessResponse:
      type: object
      properties:
        offer:
          $ref: '#/components/schemas/V2Offer'
        validation_errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              code:
                type: string