soldgraph-com Depop API

The Depop API from soldgraph-com — 1 operation(s) for depop.

Operations 1

GET /depop/listings Depop active listings #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/soldgraph-com:soldgraph-com-depop-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

soldgraph-com-depop-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Soldgraph Depop API
  version: 1.0.0
  description: Resale listings from eight marketplaces (eBay in 8 countries; Vinted in the US, UK and 24 European countries; Poshmark and Whatnot in the US and Canada; Depop in the US, UK, Australia and Canada; the rest US), plus TCGplayer product search and recent card sales.
  contact:
    url: https://soldgraph.com/docs
servers:
- url: https://api.soldgraph.com/v1
security:
- bearer: []
tags:
- name: Depop
paths:
  /depop/listings:
    get:
      operationId: depop_listings
      tags:
      - Depop
      summary: Depop active listings
      description: Search one page of Depop active listings by keyword, from sellers in the US, UK, Australia or Canada, up to 100 rows. Pages use a cursor. Results are cached for 15 minutes. A cache miss returns 202 and a job to poll.
      externalDocs:
        url: https://soldgraph.com/docs/api/depop-listings
      parameters:
      - name: q
        in: query
        required: true
        description: 'Search keywords, 1–200 characters, as you''d type them into the marketplace''s search box. Be specific: model, size, grade, edition.'
        schema:
          type: string
          minLength: 1
          maxLength: 200
      - name: page
        in: query
        required: false
        description: Source page to fetch. Where an endpoint has cursor, pages after 1 also need it.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 1
      - name: min_price
        in: query
        required: false
        description: Lowest price, in whole units of the country's currency (US dollars for us). Optional. Must not be more than max_price. You can send it without max_price.
        schema:
          type: integer
          minimum: 0
          maximum: 1000000
      - name: max_price
        in: query
        required: false
        description: Highest price, in whole units of the country's currency (US dollars for us). Optional. You can send it without min_price.
        schema:
          type: integer
          minimum: 0
          maximum: 1000000
      - name: marketplace
        in: query
        required: false
        description: Optional. If sent, it must be depop.
        schema:
          type: string
          enum:
          - depop
          default: depop
      - name: country
        in: query
        required: false
        description: 'Which country''s sellers to search: us (US dollars), uk (pounds), au (Australian dollars) or ca (Canadian dollars). Results, prices, min_price and max_price use that country''s currency. Optional.'
        schema:
          type: string
          enum:
          - us
          - uk
          - au
          - ca
          default: us
      - name: condition
        in: query
        required: false
        description: 'One Depop condition: brand_new, used_like_new, used_excellent, used_good or used_fair. Rows return the same codes.'
        schema:
          type: string
          enum:
          - brand_new
          - used_like_new
          - used_excellent
          - used_good
          - used_fair
      - name: count
        in: query
        required: false
        description: Most rows per page. Depop can return fewer.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 24
      - name: cursor
        in: query
        required: false
        description: The previous page's next_cursor. Leave it out on page 1. Keep the query, filters and count the same.
        schema:
          type: string
          minLength: 1
          maxLength: 2048
      - name: Idempotency-Key
        in: header
        required: false
        description: Send the same key when you retry the same search, so you aren't charged twice. 1–128 printable ASCII characters, no spaces.
        schema:
          type: string
          pattern: ^[!-~]{1,128}$
      responses:
        '200':
          description: Complete, including cache hits. Costs 1 request.
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepopListingsJob'
              example:
                request_id: example-depop-search
                status: complete
                credits: 1
                cached: false
                result:
                  provider: depop
                  country: us
                  query: nike
                  page: 1
                  page_size: 5
                  count: 5
                  reported_total: 2863606
                  next_page: 2
                  next_cursor: WyJNbncxZkRFM09UQTNNRGswTlRBLkJPT1NURURfRVhIQVVTVEVELjAiLCAiNzIyMGVhY2U5NDgxZWU5Y2E5ZDllNjRhNzE3YmE5ZTk2MWRmZmM2ZDg3OTRmNDU4ODNkY2E2ZDdiMjQ3NjRlZiIsIDJd
                  collected_at: '2026-09-29T19:17:31.799685+00:00'
                  schema_version: 2
                  completeness: provider_page_only
                  summary:
                    priced_count: 5
                    currency: USD
                    median: 5.95
                    low: 5.95
                    high: 19.6
                    p25: 5.95
                    p75: 7
                  data:
                  - id: '929885807'
                    title: 'Nike Bra in solid light green Size: M 💚 #activewear #sports #nike #sportbra Brand new'
                    link: https://www.depop.com/products/lovexzat-nike-bra-in-solid-light-4c6d/
                    displayed_price:
                      amount: 5.95
                      currency: USD
                    displayed_price_text: $5.95
                    price_includes:
                    - buyer_fee
                    condition: brand_new
                    brand: Nike
                    size: M
                    image: https://media-photos.depop.com/r1/7548776/4806392865_e376f6e8a5e14144b78062921e1cd94e/P0.jpg
                    promoted: false
                    location_text: Los Angeles, United States
                    like_count: 4
                  - id: '930772677'
                    title: 'Nike SB hoodie with white and yellow ''NIKE SB'' logo, size L #skateboarding #sb'
                    link: https://www.depop.com/products/abbimjelsema-nike-sb-hoodie-with-white-7e9d/
                    displayed_price:
                      amount: 5.95
                      currency: USD
                    displayed_price_text: $5.95
                    price_includes:
                    - buyer_fee
                    condition: used_fair
                    brand: Nike
                    size: L
                    image: https://media-photos.depop.com/r1/218735601/4811656506_4d0e4793b3b24c6686684127e03e96ed/P0.jpg
                    promoted: false
                    location_text: Byron Center, United States
                    like_count: 10
                  - id: '930226367'
                    title: 'Nike Tech Fleece black sweatpants size XS #techfleece #nike#black#tech#pants'
                    link: https://www.depop.com/products/kanuc2i-nike-tech-fleece-black-sweatpants-b7e1/
                    displayed_price:
                      amount: 19.6
                      currency: USD
                    displayed_price_text: $19.60
                    price_includes:
                    - buyer_fee
                    condition: used_good
                    brand: Nike
                    size: XS
                    image: https://media-photos.depop.com/b1/47345678/4808288131_3f9d82598a9f4450b808552d9e1e3283/P0.jpg
                    promoted: false
                    location_text: Portland, United States
                    like_count: 3
                  - id: '929853097'
                    title: 'grey nike pros size small worn a few times!! #nike #nikepros #grey'
                    link: https://www.depop.com/products/mollygraceaver5-grey-nike-pros-size-small-448f/
                    displayed_price:
                      amount: 5.95
                      currency: USD
                    displayed_price_text: $5.95
                    price_includes:
                    - buyer_fee
                    condition: used_excellent
                    brand: Nike
                    size: One size
                    image: https://media-photos.depop.com/r1/370197255/4806213953_fcdec04586e846df916b12f133ba429d/P0.jpg
                    promoted: false
                    location_text: Ona, United States
                    like_count: 7
                  - id: '930263070'
                    title: 'Nike black hoodie Size XL men’s used #athleisure #nike #hoodie #sweatshirt'
                    link: https://www.depop.com/products/throwbakkkingz-nike-black-hoodie-size-xl-aef6/
                    displayed_price:
                      amount: 7
                      currency: USD
                    displayed_price_text: $7.00
                    price_includes:
                    - buyer_fee
                    condition: used_fair
                    brand: Nike
                    size: XL
                    image: https://media-photos.depop.com/b1/37215522/4808493787_8d99ee61ab824899a0f459149b19efc3/P0.jpg
                    promoted: false
                    location_text: Olympia, United States
                    like_count: 2
                  field_notes: Active US listings with USD prices only; non-USD source rows are excluded. displayed_price is Depop's USD headline amount; price_includes identifies fees included by the source. Price bounds apply to source search prices, which may differ from the headline. Shipping, seller identity and listing timestamps are not provided. Source order is preserved. Totals may be absent on later pages. No transaction price or sold-search capability is provided.
        '202':
          description: 'Pending. Poll `poll_url` (or `Location`) with the same API key. Both are paths: join them to https://api.soldgraph.com.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
            Location:
              description: Job path, like /v1/jobs/{id}.
              schema:
                type: string
            Retry-After:
              description: Always 2. Prefer long-polling with ?wait=20.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepopListingsJob'
              example:
                request_id: 00000000-0000-4000-8000-000000000001
                status: pending
                credits: 0
                cached: false
                poll_url: /v1/jobs/00000000-0000-4000-8000-000000000001
        '401':
          description: 'invalid_api_key: The API key is missing, malformed or revoked.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: 'account_suspended: The account is suspended, so none of its keys work. Email support to restore it. origin_not_allowed: A browser sent the request from a site that isn''t allowed. Call the API from your server.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: 'not_found: No such path. request_not_found: The job ID is well-formed but unknown, or belongs to another account. An ID that isn''t a UUID is no such path: 404 not_found. batch_not_found: No batch with that ID belongs to this account. Or a replay of a search that failed because of the search (the body is then the failed job): not_found.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/Error'
                - $ref: '#/components/schemas/DepopListingsJob'
        '405':
          description: 'method_not_allowed: Wrong method for this route. Searches, jobs and usage use GET. Only /v1/batches takes POST.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: 'idempotency_conflict: This Idempotency-Key was already used with different search parameters. result_not_ready: CSV was requested before every search settled. Poll as JSON until status is complete, then ask for CSV.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: 'payload_too_large: The batch body is over 256 KB.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '414':
          description: 'uri_too_long: The query string is longer than 2,048 characters.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: 'unsupported_media_type: A batch must be sent as Content-Type: application/json.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: 'unsupported_or_invalid_query: An unknown parameter, or a value outside the documented range. error.param names the input to fix when it is one of the route''s inputs. duplicate_parameter: A parameter was sent more than once. sort_not_implemented: sort=best_deal is not available. invalid_idempotency_key: Idempotency-Key must be 1–128 printable ASCII characters, with no spaces. invalid_wait: wait must be a whole number from 0 to 20. invalid_body: The batch body is not JSON, or has no searches list. batch_too_large: The batch holds more searches than your plan allows at once. pages counts as one search per page. invalid_format: format must be json or csv, and include must be results. Or a replay of a search that failed because of the search (the body is then the failed job): rejected, filter_not_supported, filter_not_applied, location_not_served.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/Error'
                - $ref: '#/components/schemas/DepopListingsJob'
        '429':
          description: 'rate_limited: More than 60 API calls this minute for your account. quota_exceeded: Your plan''s allowance is used up, and you have no extra requests left. too_many_pending: Your account has too many searches still pending. Wait for results before sending more.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: 'Temporary failure, or a replay of a failed search (the body is then the failed job). upstream_daily_limit: The marketplace''s daily limit was reached, so new searches are paused. Cached results still work. queue_full: The collection queue is full. collection_unavailable: We can''t collect from this marketplace right now. storage_unavailable: Our database is briefly unavailable. origin_unavailable: The edge couldn''t reach our API server. service_unconfigured: The API is misconfigured on our side. Contact support.'
          headers:
            X-Request-Id:
              description: Unique ID for this response. Include it when you contact support.
              schema:
                type: string
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/Error'
                - $ref: '#/components/schemas/DepopListingsJob'
components:
  schemas:
    Money:
      type: object
      required:
      - amount
      - currency
      properties:
        amount:
          type: number
        currency:
          type: string
          description: ISO 4217 code, like USD.
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          properties:
            code:
              type: string
              enum:
              - invalid_api_key
              - account_suspended
              - origin_not_allowed
              - not_found
              - request_not_found
              - batch_not_found
              - method_not_allowed
              - idempotency_conflict
              - result_not_ready
              - payload_too_large
              - uri_too_long
              - unsupported_media_type
              - unsupported_or_invalid_query
              - duplicate_parameter
              - sort_not_implemented
              - invalid_idempotency_key
              - invalid_wait
              - invalid_body
              - batch_too_large
              - invalid_format
              - rate_limited
              - quota_exceeded
              - too_many_pending
              - upstream_daily_limit
              - queue_full
              - collection_unavailable
              - storage_unavailable
              - origin_unavailable
              - service_unconfigured
            message:
              type: string
              description: What the code means, in plain words. On every error; safe to show to a user.
            param:
              type: string
              description: 'On a 422: the input to fix, when it is one of the route''s inputs. Never a value.'
            index:
              type: integer
              description: 'On a refused batch: the position of the search to fix.'
            upgrade_url:
              type: string
              format: uri
              description: 'On quota_exceeded: the billing page, where you move to a larger plan or buy extra requests.'
    DepopListingsRow:
      type: object
      required:
      - id
      - title
      - link
      - promoted
      - displayed_price
      - displayed_price_text
      - condition
      - brand
      - size
      - location_text
      - like_count
      - image
      - price_includes
      properties:
        id:
          type: string
          description: The marketplace's listing ID.
        title:
          type:
          - string
          - 'null'
          description: Depop's listing description, up to 2,000 characters.
        link:
          type: string
          description: URL of the listing on the marketplace.
        promoted:
          type:
          - boolean
          - 'null'
          description: Whether Depop marks the listing as boosted.
        displayed_price:
          $ref: '#/components/schemas/Money'
          description: '{ amount, currency } of Depop''s headline price, in the country''s currency. It includes the parts listed in price_includes. It isn''t what a buyer paid.'
        displayed_price_text:
          type:
          - string
          - 'null'
          description: The headline price as text, like $52.00, £24.75, A$50.00 or C$89.00.
        condition:
          type:
          - string
          - 'null'
          description: Depop's condition code, like used_good.
        brand:
          type:
          - string
          - 'null'
          description: The brand Depop shows, when there is one.
        size:
          type:
          - string
          - 'null'
          description: The sizes available, when Depop lists them.
        location_text:
          type:
          - string
          - 'null'
          description: The location Depop shows, when there is one.
        like_count:
          type:
          - integer
          - 'null'
          description: How many Depop users have liked the listing. Null when Depop doesn't report it.
        image:
          type:
          - string
          - 'null'
          description: Image URL on Depop's photo CDN.
        price_includes:
          type: array
          items:
            type: string
          description: 'What the headline price includes: buyer_fee, shipping_price, tax, or a mix. An empty array means none of them.'
    DepopListingsJob:
      type: object
      required:
      - request_id
      - status
      - credits
      - cached
      properties:
        request_id:
          type: string
          description: ID of this request. Poll it at /v1/jobs/{request_id}.
        status:
          type: string
          description: pending, complete or failed. Always check it, even on HTTP 200.
          enum:
          - pending
          - complete
          - failed
        credits:
          type: integer
          description: 'Requests charged: 1 when complete, 0 for a page past the last one, while pending, or when failed.'
        cached:
          type: boolean
          description: True when the result came from the 15-minute cache.
        poll_url:
          type: string
          description: 'Only while pending. A path like /v1/jobs/{id}: join it to https://api.soldgraph.com, not to the /v1 base URL.'
        result:
          $ref: '#/components/schemas/DepopListingsPage'
        error:
          type: object
          required:
          - code
          properties:
            code:
              type: string
              enum:
              - page_mismatch
              - schema
              - network
              - upstream
              - throttled
              - blocked
              - rejected
              - not_found
              - filter_not_supported
              - filter_not_applied
              - location_not_served
              - auth
              - daily_limit
              - deadline_exceeded
              - credential_storage
              description: Failed job code.
            message:
              type: string
              description: What the code means, in plain words.
    DepopListingsPage:
      type: object
      required:
      - provider
      - country
      - query
      - page
      - count
      - reported_total
      - next_page
      - collected_at
      - schema_version
      - completeness
      - field_notes
      - page_size
      - summary
      - next_cursor
      - reported_total
      - data
      properties:
        provider:
          type: string
          description: Marketplace ID, like ebay or poshmark.
        country:
          type: string
          description: 'The country searched: us, or on eBay the country you sent.'
        query:
          type: string
          description: The q you sent, with extra spaces removed.
        page:
          type: integer
          description: The page you asked for.
        count:
          type: integer
          description: Rows in result.data on this page.
        reported_total:
          type:
          - integer
          - 'null'
          description: The total Depop reports, when there is one. Often null after the first page. It doesn't mean full coverage.
        next_page:
          type:
          - integer
          - 'null'
          description: Send this as page to get the next page. Null on the last page, and on page 100, the deepest page served.
        collected_at:
          type: string
          description: When we collected the page, as an ISO 8601 timestamp.
        schema_version:
          type: integer
          description: 'Version of the result''s shape for that marketplace: 1 or 2. It only rises when a field changes meaning.'
        completeness:
          type: string
          description: 'provider_page_only: one page as the marketplace served it, not a full history. TCGplayer recent sales say recent_sample_only.'
        field_notes:
          type: string
          description: Plain-text notes on how to read this page's fields.
        page_size:
          type: integer
          description: Rows Depop returned before we removed listings that aren't active listings from the country you searched, priced in its currency. It can be larger than count.
        summary:
          type: object
          properties:
            priced_count:
              type: integer
              description: Rows on this page that show one price.
            currency:
              type: string
              description: Currency of the amounts below.
            median:
              type:
              - number
              - 'null'
              description: Middle displayed price of those rows.
            low:
              type:
              - number
              - 'null'
              description: Lowest displayed price.
            high:
              type:
              - number
              - 'null'
              description: Highest displayed price.
            p25:
              type:
              - number
              - 'null'
              description: 'First-quartile displayed price: a quarter of priced rows are at or below it.'
            p75:
              type:
              - number
              - 'null'
              description: Third-quartile displayed price. With `p25`, a range that ignores a stray accessory or parts listing.
          required:
          - priced_count
          - currency
          - median
          - low
          - high
          - p25
          - p75
          description: 'Price maths over the rows on this page: priced_count, currency, median, low, high. No row is removed from data. Rows with no single readable price are left out of the maths.'
        next_cursor:
          type:
          - string
          - 'null'
          description: Send this as cursor, with page=next_page, to get the next page. Null on the last page.
        data:
          type: array
          items:
            $ref: '#/components/schemas/DepopListingsRow'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An API key from the Soldgraph dashboard, starting with sg_.