Dailyhunt Channels API

Discovery of the content channels a partner is entitled to consume.

OpenAPI Specification

dailyhunt-channels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dailyhunt Content Syndication Channels 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: Channels
  description: Discovery of the content channels a partner is entitled to consume.
paths:
  /api/v2/syndication/channels:
    get:
      operationId: listChannels
      summary: List content channels
      description: Returns the list of content channels the partner is entitled to consume for a language. A channel has a name and a `contentUrl` used to fetch its cards. Setting `pfm=64` returns the DailyShare (viral) channels instead of the standard news channels.
      tags:
      - Channels
      parameters:
      - $ref: '#/components/parameters/Partner'
      - $ref: '#/components/parameters/LangCode'
      - $ref: '#/components/parameters/Ts'
      - $ref: '#/components/parameters/Puid'
      - $ref: '#/components/parameters/Pfm'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: A paginated list of channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelListResponse'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '403':
          $ref: '#/components/responses/InvalidSignature'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/v2/syndication/channels/locations:
    get:
      operationId: listLocationChannels
      summary: List location channels
      description: Returns location-scoped channels whose items are specific to a geography. Dailyhunt must enable these channels for the partner and the correct `pfm` value must be sent. Location channels may carry `subChannels`.
      tags:
      - Channels
      parameters:
      - $ref: '#/components/parameters/Partner'
      - $ref: '#/components/parameters/LangCode'
      - $ref: '#/components/parameters/Ts'
      - $ref: '#/components/parameters/Puid'
      - $ref: '#/components/parameters/Pfm'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: A paginated list of location channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelListResponse'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '403':
          $ref: '#/components/responses/InvalidSignature'
        '500':
          $ref: '#/components/responses/ServerError'
  /api/v2/syndication/video/channels:
    get:
      operationId: listVideoChannels
      summary: List video channels
      description: Returns the video-only content channels available to the partner. Requires the video feature bit in the feature mask (`pfm=32`) and per-partner enablement by Dailyhunt.
      tags:
      - Channels
      parameters:
      - $ref: '#/components/parameters/Partner'
      - $ref: '#/components/parameters/LangCode'
      - $ref: '#/components/parameters/Pfm'
      - $ref: '#/components/parameters/Ts'
      - $ref: '#/components/parameters/Puid'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      responses:
        '200':
          description: A paginated list of video channels.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelListResponse'
        '401':
          $ref: '#/components/responses/InvalidApiKey'
        '403':
          $ref: '#/components/responses/InvalidSignature'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ChannelListResponse:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code value
        data:
          type: object
          properties:
            rows:
              type: array
              items:
                $ref: '#/components/schemas/Channel'
            pageNumber:
              type: integer
              description: Current page number of the paginated response
            count:
              type: integer
              description: Total number of channels in the page
            nextPageUrl:
              type: string
              description: Next page URL when more channels are available
            homeUrl:
              type: string
              description: URL of the Dailyhunt website home page
            appHomeUrl:
              type: string
              description: URL of the Dailyhunt app home page if installed
    Channel:
      type: object
      description: A topic under which content items are classified.
      properties:
        id:
          type: string
          description: Channel ID
        name:
          type: string
          description: Channel name
        type:
          type: string
          description: Channel type, for example FORYOU, DHTV or CRICKET
        contentUrl:
          type: string
          description: Channel content fetch URL used to get items from this channel
        deepLinkUrl:
          type: string
          description: Deep link that opens the content feed page on the PWA or mobile web site
        appDeepLinkUrl:
          type: string
          description: Deep link that opens the feed in the Dailyhunt app if installed
        subChannels:
          type: array
          description: Nested channels (location channels only)
          items:
            $ref: '#/components/schemas/Channel'
  parameters:
    PageNumber:
      name: pageNumber
      in: query
      description: Zero-based page number of the paginated response.
      schema:
        type: integer
    PageSize:
      name: pageSize
      in: query
      description: Number of records per page.
      schema:
        type: integer
    Pfm:
      name: pfm
      in: query
      description: Partner feature mask — the sum of the feature bits enabled for the partner or channel. LIVE_TV_CARD 1, CRICKET_CARD (brief) 8, HERO_CARD 16, VIDEO_CHANNELS 32, VIRAL_CHANNELS 64, CRICKET_CARD (detailed) 128. Bits 2 and 4 are reserved.
      schema:
        type: integer
    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
  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.
  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/