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

# Search by Image

> Supply exactly one of image_url or image_base64 (JPEG/PNG/WebP, at most 5 MiB decoded). Find active Vinted listings from a photo. 10 credits per successful request. Returns the usual items, pagination and
market envelope. Visual ranking. Each item carries similarity_score (0-1; the query image's own listing scores 1.0) on the calls where Vinted returns a ranking, and null on the ones where it does not. Resend the same image
and pagination time for subsequent pages. Structured brand data may be null.

Find active listings from one image URL or base64 photo. See the
[image-search guide](/vinted/image-search) for local files, filters and client examples.

<Note>
  Send exactly one of `image_url` or `image_base64`. JPEG, PNG and WebP images can be up to 5 MiB decoded. Authenticate with your `x-api-key` header.
</Note>


## OpenAPI

````yaml POST /v1/vinted/search_by_image
openapi: 3.1.0
info:
  title: ScrapeBadger Vinted API
  version: 1.0.0
  description: >-
    Vinted marketplace scraping API for searching items, fetching details, user
    profiles, and reference data.
servers:
  - url: https://scrapebadger.com
    description: Production
security:
  - apiKeyAuth: []
paths:
  /v1/vinted/search_by_image:
    post:
      tags:
        - Vinted
      summary: Search by image
      description: >-
        Supply exactly one of image_url or image_base64 (JPEG/PNG/WebP, at most
        5 MiB decoded). Find active Vinted listings from a photo. 10 credits per
        successful request. Returns the usual items, pagination and

        market envelope. Visual ranking. Each item carries similarity_score
        (0-1; the query image's own listing scores 1.0) on the calls where
        Vinted returns a ranking, and null on the ones where it does not. Resend
        the same image

        and pagination time for subsequent pages. Structured brand data may be
        null.
      operationId: vinted_search_by_image
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VintedImageSearchRequest'
            example:
              image_url: https://example.com/photo.jpg
              market: nl
              per_page: 20
              price_to: 50
        required: true
      responses:
        '200':
          description: Successful search
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VintedItemSummary'
                  pagination:
                    $ref: '#/components/schemas/VintedPagination'
                  market:
                    type: string
                    description: Echo of the market that was searched.
                  seller_country:
                    type: string
                    nullable: true
                    description: >-
                      Echo of the normalized seller_country filter that was
                      applied (uppercase, comma-separated ISO-2 codes, e.g.
                      "FR,BE"), or null when no filter was requested.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth: []
components:
  schemas:
    VintedImageSearchRequest:
      properties:
        image_url:
          anyOf:
            - type: string
              maxLength: 4096
            - type: 'null'
          title: Image Url
          description: >-
            Public HTTP(S) image URL. Supply exactly one of image_url or
            image_base64.
        image_base64:
          anyOf:
            - type: string
              maxLength: 7100000
            - type: 'null'
          title: Image Base64
          description: >-
            JPEG, PNG or WebP, at most 5 MiB decoded. Bare base64 or a
            data:image/...;base64 URL.
        market:
          type: string
          title: Market
          description: Vinted market code; uk aliases gb
          default: fr
        page:
          type: integer
          minimum: 1
          title: Page
          default: 1
        per_page:
          type: integer
          maximum: 96
          minimum: 1
          title: Per Page
          default: 20
        price_from:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Price From
        price_to:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Price To
        brand_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Brand Ids
          description: Comma-separated brand IDs
        catalog_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Catalog Ids
          description: Comma-separated category IDs
        color_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Color Ids
          description: Comma-separated color IDs
        size_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Size Ids
          description: Comma-separated size IDs
        material_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Material Ids
          description: Comma-separated material IDs
        status_ids:
          anyOf:
            - type: string
              maxLength: 1000
              pattern: ^[1-9][0-9]*(,[1-9][0-9]*)*$
            - type: 'null'
          title: Status Ids
          description: Comma-separated condition IDs
        time:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Time
          description: Pagination time from the preceding page
        search_session_id:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Search Session Id
          description: Reuse across pages of one search
      additionalProperties: false
      type: object
      title: VintedImageSearchRequest
      description: Search by exactly one public image URL or base64-encoded image.
    VintedItemSummary:
      type: object
      properties:
        id:
          type: integer
          description: Item ID.
        title:
          type: string
          description: Item title.
        price:
          $ref: '#/components/schemas/VintedPrice'
        service_fee:
          type: string
          nullable: true
          description: Buyer-protection fee as a decimal string, in price.currency_code.
        total_item_price:
          type: string
          nullable: true
          description: >-
            Price + buyer protection as a decimal string, in
            price.currency_code.
        brand_title:
          type: string
          nullable: true
          description: Brand name.
        size_title:
          type: string
          nullable: true
          description: Size label.
        status:
          type: string
          nullable: true
          description: Item condition, localized to the market.
        photo:
          $ref: '#/components/schemas/VintedPhoto'
        photos:
          type: array
          items:
            $ref: '#/components/schemas/VintedPhoto'
        url:
          type: string
          description: Full URL to the Vinted listing.
        path:
          type: string
          nullable: true
          description: Path portion of the listing URL.
        user:
          $ref: '#/components/schemas/VintedUserSummary'
        favourite_count:
          type: integer
          description: Number of users who favourited this item.
        view_count:
          type: integer
          description: Number of views.
        is_visible:
          type: boolean
          description: Whether the listing is publicly visible.
        promoted:
          type: boolean
          description: Whether the listing is a promoted/bumped placement.
        content_source:
          type: string
          nullable: true
          description: Vinted's own label for where the result came from (e.g. "search").
        seller_country_code:
          type: string
          nullable: true
          description: >-
            ISO 3166-1 alpha-2 code of the seller's physical country (e.g.
            "IT"). Populated only when seller_country filtering was requested.
        display_title:
          anyOf:
            - type: string
            - type: 'null'
          description: Vinted display text; do not interpret it as a brand or size ID.
        display_subtitle:
          anyOf:
            - type: string
            - type: 'null'
          description: Vinted display text; do not interpret it as a brand or size ID.
        similarity_score:
          type: number
          nullable: true
          description: >-
            Visual similarity to the query image, 0-1, where the query image's
            own listing scores 1.0. Populated only by search_by_image, and only
            on the calls where Vinted returns a ranking; null otherwise. A null
            says nothing about the item, only that Vinted sent no score.
    VintedPagination:
      type: object
      properties:
        current_page:
          type: integer
          description: Current page number.
        per_page:
          type: integer
          description: Number of items per page.
        total_pages:
          type: integer
          description: Total number of pages.
        total_entries:
          type: integer
          description: >-
            Total matching items. Vinted caps this at 960 on deep result sets —
            treat it as an upper bound.
        time:
          anyOf:
            - type: integer
            - type: 'null'
          description: Pass unchanged into the next catalog page request.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VintedPrice:
      type: object
      properties:
        amount:
          type: string
          description: Decimal amount as a string (e.g. "45.0").
        currency_code:
          type: string
          description: ISO 4217 currency code (e.g. "EUR").
    VintedPhoto:
      type: object
      properties:
        id:
          type: integer
          description: Photo ID.
        url:
          type: string
          description: Photo URL.
        full_size_url:
          type: string
          nullable: true
          description: Full-resolution photo URL.
        width:
          type: integer
          nullable: true
          description: Width in pixels.
        height:
          type: integer
          nullable: true
          description: Height in pixels.
        dominant_color:
          type: string
          nullable: true
          description: Dominant colour as a hex string.
        is_main:
          type: boolean
          description: Whether this is the listing's primary photo.
    VintedUserSummary:
      type: object
      properties:
        id:
          type: integer
          description: User ID.
        login:
          type: string
          description: Username.
        photo_url:
          type: string
          nullable: true
          description: Profile photo URL.
        business:
          type: boolean
          description: Whether the seller is a business account.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

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