---
title: "Browse or search Kickstarter's Discover surface"
method: GET
path: "/kickstarter/discover"
tags: ["Kickstarter"]
---

# Browse or search Kickstarter's Discover surface

`GET /kickstarter/discover`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/kickstarter/discover`
- Auth: API key in header `x-api-key`

Returns one page of Kickstarter's own Discover results -- browse by category id and/or a free-text search term, sorted by magic/popularity/newest/end_date/most_funded, optionally filtered by campaign state and/or restricted to staff picks. Each result includes the campaign's funding snapshot (goal, pledged, percent funded, backers), category, location, creator, and cover photo.

## Query parameters

- `category_id` integer
- `term` string
- `sort` 'magic' | 'popularity' | 'newest' | 'end_date' | 'most_funded'
- `page` integer
- `state` string[]
- `staff_pick_only` boolean

## Headers

- `x-api-key` string, required

## Response `200`

OK

- KickstarterDiscoverResponseDoc
  - `code` integer
  - `data` KickstarterDiscoverResult
    - `page` integer
    - `projects` KickstarterProject[]
      - `backers_count` integer
      - `blurb` string
      - `category` KickstarterCategory
        - `id` integer
        - `name` string
        - `parent_id` integer
        - `slug` string
        - `url` string
      - `comments_count` integer
      - `converted_pledged_amount` number
      - `country` string
      - `created_at` string
      - `creator` KickstarterCreator
        - `avatar` string
        - `id` integer
        - `name` string
        - `url` string
      - `currency` string
      - `currency_symbol` string
      - `deadline` string
      - `faq_count` integer
      - `goal` number
      - `has_video` boolean
      - `id` integer
      - `is_launched` boolean
      - `launched_at` string
      - `location` KickstarterLocation
        - `country` string
        - `displayable_name` string
        - `id` integer
        - `name` string
        - `short_name` string
      - `name` string
      - `percent_funded` integer
      - `photo` KickstarterPhoto
        - `full` string
      - `pledged` number
      - `reward_tiers` KickstarterRewardTier[]: RewardTiers is the campaign's pledge/reward tier list, captured from kickstarter.com's own natural GraphQL traffic when the campaign's /rewards sub-page renders -- see doc.go's "Reward tiers" section. Best-effort: omitted (not an error) if the capture-capable render backends are unavailable or the campaign has no reward tiers.
        - `add_ons` KickstarterRewardAddOn[]
          - `amount` number
          - `currency` string
          - `description` string
          - `id` string
          - `name` string
        - `amount` number
        - `available` boolean
        - `backers_count` integer
        - `currency` string
        - `description` string
        - `ends_at` string
        - `estimated_delivery_on` string
        - `featured` boolean
        - `id` string
        - `image` string
        - `items` KickstarterRewardItem[]
          - `name` string
          - `quantity` integer
        - `limit` integer
        - `name` string
        - `remaining_quantity` integer
        - `shipping_enabled` boolean
        - `shipping_preference` string
        - `shipping_summary` string
      - `risks_and_challenges` string
      - `slug` string
      - `spotlight` boolean
      - `staff_pick` boolean
      - `state` string
      - `state_changed_at` string
      - `story` string
      - `updates_count` integer
      - `url` string
      - `usd_pledged` number
    - `total_hits` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/028417aa35bb?raw)
