Dailyhunt Products API

Batch create, update and delete products inside a catalog, and poll batch status.

OpenAPI Specification

dailyhunt-products-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dailyhunt E-Commerce Shopping Catalog Products API
  version: v1
  description: 'The Dailyhunt E-Commerce Shopping Catalog API lets a registered commerce vendor upload and maintain its product catalogue inside the Dailyhunt system so those products can be onboarded for shopping and advertising surfaces. A vendor creates a named catalog, then submits batched CREATE / UPDATE / DELETE product requests keyed by `retailer_id`, each carrying the standard product-feed attributes (name, brand, price, sale price and sale window, currency, availability, condition, category and product type, colour, size, pattern, gender, age group, GTIN, inventory, image URL and additional image URLs, landing URL, shipping rows and Android/iPhone app links, plus custom labels). Batch submission is asynchronous: the API returns a handle, and the vendor polls a status endpoint for completion and per-request errors. Authentication is a vendor `access_token` passed in the JSON request body — the vendor must already be registered and credentialed by Dailyhunt.

    This OpenAPI was DERIVED by API Evangelist from Dailyhunt''s own public E-Commerce Catalog Integration Guide at https://developer.dailyhunt.in/ads/docs/shopping-catalog/ — every endpoint, method, mandatory field, request body and response body was transcribed from that page. It is NOT a provider-published specification; Dailyhunt publishes no machine-readable spec for this API (probes of /openapi.json, /swagger.json and /api-docs on developer.dailyhunt.in returned HTTP 404 on 2026-08-04).'
  contact:
    name: Dailyhunt Ads Tech Team
    url: https://developer.dailyhunt.in/ads/
    email: ads-tech-team@verse.in
  x-apievangelist-derived-from: https://developer.dailyhunt.in/ads/docs/shopping-catalog/
  x-apievangelist-derived-on: '2026-08-04'
  x-apievangelist-provider-published: false
servers:
- url: https://money.dailyhunt.in
  description: Dailyhunt shopping catalog host
security:
- VendorAccessToken: []
tags:
- name: Products
  description: Batch create, update and delete products inside a catalog, and poll batch status.
paths:
  /shopping-catalog/v1/catalog/{catalog_id}/batch:
    post:
      operationId: submitProductBatch
      summary: Add, update or delete products in a catalog
      description: Submits a batch of product mutations for the catalog. Each request row carries a `method` (CREATE, UPDATE or DELETE), a `retailer_id` and, for CREATE and UPDATE, a `data` object of product attributes. Returns a handle used to poll batch status.
      tags:
      - Products
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductBatchRequest'
      responses:
        '201':
          description: Batch accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  handles:
                    type: string
                    format: uuid
                    description: Handle used to poll batch status
  /shopping-catalog/v1/catalog/{catalog_id}/batch/status:
    get:
      operationId: getProductBatchStatus
      summary: Fetch status of a submitted product batch
      description: Returns the processing status and any per-request errors for a submitted batch.
      tags:
      - Products
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: handler
        in: query
        required: true
        description: The handle returned by the batch submission.
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        description: The published guide sends the vendor access token in the body of this request.
        content:
          application/json:
            schema:
              type: object
              required:
              - access_token
              properties:
                access_token:
                  type: string
      responses:
        '200':
          description: Batch status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: string
                          description: Processing status, for example Finished
                        errors_total_count:
                          type: integer
                        errors:
                          type: array
                          items:
                            type: object
                  updated_on:
                    type: integer
                    format: int64
components:
  schemas:
    ProductData:
      type: object
      description: Product attributes for a CREATE or UPDATE request row.
      properties:
        name:
          type: string
        description:
          type: string
        brand:
          type: string
        category:
          type: string
        product_type:
          type: string
        price:
          type: string
        sale_price:
          type: string
        sale_price_start_date:
          type: string
        sale_price_end_date:
          type: string
        currency:
          type: string
        availability:
          type: string
          description: For example "in stock"
        condition:
          type: string
          description: For example "new"
        inventory:
          type: integer
        gtin:
          type: string
        color:
          type: string
        size:
          type: string
        pattern:
          type: string
        gender:
          type: string
        age_group:
          type: string
          description: For example "infant", "newborn"
        url:
          type: string
        image_url:
          type: string
        additional_image_urls:
          type: array
          items:
            type: string
        retailer_product_group_id:
          type: string
        shipping:
          type: array
          items:
            $ref: '#/components/schemas/Shipping'
        applinks:
          $ref: '#/components/schemas/AppLinks'
        custom_label_2:
          type: string
        custom_label_3:
          type: string
        custom_label_4:
          type: string
    ProductBatchRequest:
      type: object
      required:
      - access_token
      - requests
      properties:
        access_token:
          type: string
        item_type:
          type: string
          description: For example PRODUCT_ITEM
        allow_upsert:
          type: boolean
        requests:
          type: array
          items:
            type: object
            required:
            - method
            - retailer_id
            properties:
              method:
                type: string
                enum:
                - CREATE
                - UPDATE
                - DELETE
              retailer_id:
                type:
                - string
                - integer
                description: The vendor's own product identifier
              data:
                $ref: '#/components/schemas/ProductData'
    AppLinks:
      type: object
      properties:
        android:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              app_name:
                type: string
              package:
                type: string
              class:
                type: string
        iphone:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              app_store_id:
                type: integer
              app_name:
                type: string
    Shipping:
      type: object
      properties:
        country:
          type: string
        region:
          type: string
        service:
          type: string
        price_value:
          type: string
        price_currency:
          type: string
  securitySchemes:
    VendorAccessToken:
      type: apiKey
      in: query
      name: access_token
      description: Vendor access token issued by Dailyhunt at registration. The published guide passes it as an `access_token` field in the JSON request body rather than as a header or query parameter; OpenAPI cannot express a body-borne credential, so it is modelled here as an apiKey scheme and the body field is documented on each operation.
externalDocs:
  description: E-Commerce Catalog Integration Guide
  url: https://developer.dailyhunt.in/ads/docs/shopping-catalog/