> ## 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; no similarity score. 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; no similarity score. 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.
    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

````