> ## Documentation Index
> Fetch the complete documentation index at: https://socialquery.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Hunt Launches

> Read the current public Product Hunt Atom feed, optionally narrowed by a verified topic slug. query and date filters apply to this feed window. Feed order is not vote ranking. Publication timestamps are post creation times, not launch days; votes, comments and maker handles remain null.

Read the current public Product Hunt Atom feed, optionally narrowed by one of the verified topic slugs listed below. query and date filters apply to this feed window. Feed order is not vote ranking. Publication timestamps are post creation times, not launch days; votes, comments and maker handles remain null.

Each successful uncached request costs **1 credit**. The response has one current source window and no continuation cursor. Invalid requests and unavailable sources are refunded.

The feed usually contains 50 entries before local filtering. `since` and `until` accept ISO dates or timestamps with a timezone; date-only `until` includes the whole UTC day. Undated entries are retained. An unknown topic returns HTTP 404 rather than silently returning general launches. Product Hunt may change this public feed.

Supported topic slugs are taken from the public directory checked on 11 October 2026. This bounded list avoids Product Hunt silently returning unrelated general-feed entries for an unrecognized topic. A slug outside this list returns HTTP 404, even if Product Hunt has since added it.

`3d-modeling`, `3d-printer`, `a-b-testing`, `accessories`, `accounting`, `action-games`, `ad-blockers`, `adult-coloring-books`, `adventure-games`, `advertising`, `affiliate-marketing`, `alarms`, `alcohol`, `alexa-skills`, `alpha`, `amazon`, `analytics`, `android`, `animation`, `anonymous`, `artificial-intelligence`, `design-tools`, `developer-tools`, `email-marketing`, `social-media`, `web3`.


## OpenAPI

````yaml GET /producthunt/launches
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /producthunt/launches:
    get:
      tags:
        - Product Hunt
      summary: Product Hunt Launches
      description: >-
        Read the current public Product Hunt Atom feed, optionally narrowed by a
        verified topic slug. query and date filters apply to this feed window.
        Feed order is not vote ranking. Publication timestamps are post creation
        times, not launch days; votes, comments and maker handles remain null.
      operationId: get_producthunt_launches
      parameters:
        - name: topic
          in: query
          required: false
          example: artificial-intelligence
          schema:
            type: string
            pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
            maxLength: 100
            enum:
              - 3d-modeling
              - 3d-printer
              - a-b-testing
              - accessories
              - accounting
              - action-games
              - ad-blockers
              - adult-coloring-books
              - adventure-games
              - advertising
              - affiliate-marketing
              - alarms
              - alcohol
              - alexa-skills
              - alpha
              - amazon
              - analytics
              - android
              - animation
              - anonymous
              - artificial-intelligence
              - design-tools
              - developer-tools
              - email-marketing
              - social-media
              - web3
          description: >-
            Verified public-directory topic slug as of 2026-10-11. Other slugs
            return 404; the adapter does not silently return the general feed.
        - name: query
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 200
        - name: since
          in: query
          required: false
          schema:
            type: string
        - name: until
          in: query
          required: false
          schema:
            type: string
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Read the current public Product Hunt Atom feed, optionally narrowed
            by a verified topic slug. query and date filters apply to this feed
            window. Feed order is not vote ranking. Publication timestamps are
            post creation times, not launch days; votes, comments and maker
            handles remain null.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                post:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    url:
                                      type: string
                                      format: uri
                                    content:
                                      type: object
                                      properties:
                                        text:
                                          type: string
                                        media_urls:
                                          type: string
                                          nullable: true
                                          format: uri
                                          description: Unavailable in the Atom feed; null.
                                        thumbnail_url:
                                          type: string
                                          nullable: true
                                          format: uri
                                        duration_seconds:
                                          type: number
                                          nullable: true
                                    author:
                                      type: object
                                      properties:
                                        username:
                                          type: string
                                          nullable: true
                                        display_name:
                                          type: string
                                          nullable: true
                                        avatar_url:
                                          type: string
                                          nullable: true
                                          format: uri
                                        verified:
                                          type: boolean
                                          nullable: true
                                    engagement:
                                      type: object
                                      description: >-
                                        Unknown engagement metrics remain null.
                                        Usage count is not a view count.
                                    flags:
                                      type: object
                                    published_at:
                                      type: string
                                      format: date-time
                                      nullable: true
                                    ext:
                                      type: object
                                      properties:
                                        title:
                                          type: string
                                        updated_at:
                                          type: string
                                          format: date-time
                                          nullable: true
                                computed:
                                  type: object
                          total:
                            type: integer
                          next_cursor:
                            type: string
                            nullable: true
                          source:
                            type: string
                          coverage_note:
                            type: string
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.