Takealot Create an offer API

The Create an offer API from Takealot — 2 operation(s) for create an offer.

Operations 2

POST /v2/offers/offer/{identifier} Create An Offer (v2) #
POST /v2/offers/offer Create 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-create-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-create-an-offer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Takealot Seller Create a batch Create 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: Create an offer
paths:
  /v2/offers/offer/{identifier}:
    post:
      operationId: create_offer_by_identifier_v2
      description: Create an offer by providing the variant's Barcode
      summary: Create An Offer (v2)
      parameters:
      - name: identifier
        in: path
        description: The Barcode for the variant to create an offer against. It is not required to prepend BARCODE.
        required: true
        schema:
          type: string
      tags:
      - Create 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/V2OfferSingleCreate'
        required: true
  /v2/offers/offer:
    post:
      operationId: create_offer_by_identifier_query_v2
      description: Create an offer by providing the variant's Barcode
      summary: Create An Offer (v2)
      parameters:
      - name: identifier
        in: query
        description: The Barcode for the variant to create an offer against. It is not required to prepend BARCODE.
        required: true
        schema:
          type: string
      tags:
      - Create 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/V2OfferSingleCreate'
        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
    V2OfferSingleCreate:
      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.
        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
    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