Dailyhunt Feedback API

Fetch the feedback options to display to a user and submit the user's selection.

OpenAPI Specification

dailyhunt-feedback-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dailyhunt Content Syndication Feedback API
  version: '2.3'
  description: 'The Dailyhunt Content Syndication API lets an approved partner pull Dailyhunt''s editorial catalogue into its own app, browser, device home screen or PWA. It exposes channel discovery (news, location, video and DailyShare/viral channels), paginated content fetch for the cards in a channel, keyword search across the catalogue, a supported-language list, a card feedback surface, a live cricket score and commentary stream, and a view-tracking endpoint that a partner must call back with the `trackData` of every card its user saw. Content is available in fourteen Indian languages. Every call is signed: the partner sends its API key in the `Authorization` header as `key=<API Key>` and a Base64-encoded HMAC-SHA1 `Signature` header computed over the lexicographically-sorted, URL-encoded query string plus the uppercased HTTP method, using the secret key Dailyhunt issues at onboarding. A per-user `puid` (partner unique user id) is required on every call and Dailyhunt returns a `dhFeedV1` cookie the partner must persist and replay. Access is partner-gated — API key, secret key and partner code are provisioned over email during onboarding, and the advanced surfaces (video channels, DailyShare cards, location channels, cricket) are additionally gated behind a per-partner feature mask (`pfm`).

    This OpenAPI was DERIVED by API Evangelist from Dailyhunt''s own public Partner Integration Reference (the Postman-published documentation at https://api-syndication.dailyhunt.in/, version 2.2/2.3) — every path, HTTP method, query parameter, header, response code, response field and example was transcribed from that published document and from the collection JSON it serves. It is NOT a provider-published specification. Dailyhunt publishes no machine-readable OpenAPI: probes of /openapi.json, /swagger.json and /api-docs on api-syndication.dailyhunt.in and developer.dailyhunt.in all returned HTTP 404 on 2026-08-04, and feed.dailyhunt.in does not resolve in public DNS (no A record) — the production host is reachable only to onboarded partners.'
  contact:
    name: Dailyhunt Content Syndication — Partner Integration
    url: https://api-syndication.dailyhunt.in/
  x-apievangelist-derived-from: https://api-syndication.dailyhunt.in/
  x-apievangelist-derived-source-artifact: postman/dailyhunt-content-syndication.postman_collection.json
  x-apievangelist-derived-on: '2026-08-04'
  x-apievangelist-provider-published: false
servers:
- url: http://feed.dailyhunt.in
  description: Production content feed host (partner-gated; does not resolve in public DNS as of 2026-08-04)
- url: http://qa-news.newshunt.com
  description: Stage integration environment for partner development and testing
- url: http://track.dailyhunt.in
  description: Production tracking host
security:
- ApiKeyAuth: []
  RequestSignature: []
tags:
- name: Feedback
  description: Fetch the feedback options to display to a user and submit the user's selection.
paths:
  /api/v2/syndication/feedback:
    get:
      operationId: listFeedbackOptions
      summary: Fetch feedback options
      description: Returns the supported feedback options a partner can display to its user.
      tags:
      - Feedback
      parameters:
      - $ref: '#/components/parameters/Partner'
      - $ref: '#/components/parameters/LangCode'
      - $ref: '#/components/parameters/Ts'
      - $ref: '#/components/parameters/Puid'
      responses:
        '200':
          description: The list of feedback options.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedbackOptionsResponse'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '403':
          $ref: '#/components/responses/InvalidSignature'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: submitFeedback
      summary: Submit user feedback on a card
      description: Submits the feedback options a user selected for a specific card back to Dailyhunt, which uses the signal to improve that user's personalized feed.
      tags:
      - Feedback
      parameters:
      - $ref: '#/components/parameters/Partner'
      - $ref: '#/components/parameters/LangCode'
      - $ref: '#/components/parameters/Ts'
      - $ref: '#/components/parameters/Puid'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeedbackSubmission'
      responses:
        '200':
          description: Feedback accepted.
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '403':
          $ref: '#/components/responses/InvalidSignature'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    FeedbackSubmission:
      type: object
      properties:
        itemId:
          type: string
          description: The card item id the feedback was reported against
        options:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Option id
              value:
                type: string
                description: Option value
    FeedbackOptionsResponse:
      type: object
      properties:
        code:
          type: integer
        data:
          type: object
          properties:
            rows:
              type: array
              items:
                $ref: '#/components/schemas/FeedbackOption'
            count:
              type: integer
    FeedbackOption:
      type: object
      properties:
        id:
          type: string
          description: Option ID
        title:
          type: string
          description: Option unicode title
        value:
          type: string
          description: Option value
  responses:
    InvalidApiKey:
      description: Invalid API key given in the request header.
    ServerError:
      description: Any unexpected issue at Dailyhunt.
    InvalidSignature:
      description: Invalid signature given in the request header.
  parameters:
    Ts:
      name: ts
      in: query
      required: true
      description: Current client timestamp in milliseconds; must be included in the signed parameter set.
      schema:
        type: integer
        format: int64
    Partner:
      name: partner
      in: query
      required: true
      description: The partner identification code issued by Dailyhunt at onboarding.
      schema:
        type: string
    LangCode:
      name: langCode
      in: query
      description: Content language code — one of en, hi, mr, gu, pa, bn, kn, ta, te, ml, or, ur, bh, ne.
      schema:
        type: string
    Puid:
      name: puid
      in: query
      required: true
      description: The partner's unique id for the end user accessing the API (for example a device identifier). Dailyhunt maps it to an internal user id to personalize the feed.
      schema:
        type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: The partner API key issued by Dailyhunt at onboarding, sent as `key=<API Key>`.
    RequestSignature:
      type: apiKey
      in: header
      name: Signature
      description: Base64-encoded HMAC-SHA1 of the signature base string, computed with the partner secret key. The signature base string is the URL-encoded request query parameters sorted lexicographically by encoded key and joined with `&`, followed by the uppercased HTTP method. A `ts` (timestamp) query parameter must be present in the signed parameter set.
externalDocs:
  description: Dailyhunt Content Syndication — Partner Integration Reference
  url: https://api-syndication.dailyhunt.in/