> ## 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.

# Get Item Details

> Get detailed information about a Vinted item.

## Path Parameters

<ParamField path="item_id" type="integer" required>
  The unique Vinted item ID. You can find this in search results or extract it from a Vinted listing URL.
</ParamField>

## Query Parameters

<ParamField query="market" type="string" default="fr">
  Vinted market where the item is listed. Must match the market the item belongs to.

  Examples: `fr`, `de`, `uk`, `it`, `es`, `pl`, `us`
</ParamField>

## Response

The payload is wrapped in an envelope: `item` holds the listing, `market` echoes
the market it was read from.

<ResponseField name="market" type="string">Echo of the requested market.</ResponseField>

<ResponseField name="item" type="object">
  <Expandable title="Item object">
    <ResponseField name="id" type="integer">Item ID.</ResponseField>
    <ResponseField name="title" type="string">Item title.</ResponseField>
    <ResponseField name="description" type="string">Full item description text.</ResponseField>

    <ResponseField name="price" type="object">
      Price object: `amount` (decimal string, e.g. `"45.0"`) and `currency_code` (ISO 4217, e.g. `"EUR"`).
    </ResponseField>

    <ResponseField name="service_fee" type="string">Buyer-protection fee as a decimal string, in `price.currency_code`. `null` when the listing page doesn't quote one.</ResponseField>
    <ResponseField name="total_item_price" type="string">Price + buyer protection as a decimal string, in `price.currency_code`.</ResponseField>
    <ResponseField name="brand_title" type="string">Brand name.</ResponseField>
    <ResponseField name="brand_id" type="integer">Vinted brand ID — the value you pass to `brand_ids` on [search](/api-reference/endpoint/vinted/search-items).</ResponseField>
    <ResponseField name="catalog_id" type="integer">Vinted catalog (category) ID of the leaf category — the value you pass to `catalog_ids` on [search](/api-reference/endpoint/vinted/search-items).</ResponseField>
    <ResponseField name="category" type="array">Category breadcrumb, root first (e.g. `["Femmes", "Vêtements", "Hauts et t-shirts", "T-shirts"]`). Localized to the market.</ResponseField>
    <ResponseField name="size_title" type="string">Size label.</ResponseField>
    <ResponseField name="size_id" type="integer">Vinted size ID.</ResponseField>
    <ResponseField name="status" type="string">Item condition, localized to the market (e.g. `"Très bon état"`).</ResponseField>
    <ResponseField name="status_id" type="integer">Vinted condition ID — see [`/v1/vinted/statuses`](/api-reference/endpoint/vinted/list-statuses).</ResponseField>
    <ResponseField name="color1" type="string">Primary color, localized. May list several, comma-separated.</ResponseField>
    <ResponseField name="color2" type="string">Secondary color (nullable).</ResponseField>
    <ResponseField name="photo" type="object">Primary photo (`id`, `url`, `full_size_url`, `width`, `height`, `dominant_color`, `is_main`).</ResponseField>
    <ResponseField name="photos" type="array">All photos, same object shape as `photo`.</ResponseField>
    <ResponseField name="url" type="string">Full URL to the Vinted listing.</ResponseField>
    <ResponseField name="view_count" type="integer">Number of views.</ResponseField>
    <ResponseField name="favourite_count" type="integer">Number of favourites.</ResponseField>
    <ResponseField name="upload_date" type="string">Vinted's own relative "listed" label, localized (e.g. `"Il y a une semaine"`) — not an ISO timestamp.</ResponseField>
    <ResponseField name="can_buy" type="boolean">Whether the item can be bought right now.</ResponseField>
    <ResponseField name="instant_buy" type="boolean">Whether Buy Now is available.</ResponseField>
    <ResponseField name="can_bundle" type="boolean">Whether the seller accepts bundles.</ResponseField>
    <ResponseField name="can_reserve" type="boolean">Whether the item can be reserved.</ResponseField>
    <ResponseField name="is_reserved" type="boolean">Whether the item is currently reserved.</ResponseField>
    <ResponseField name="is_closed" type="boolean">Whether Vinted renders the listing as no longer available (the "Sold" banner page). See [Listing states](#listing-states) — check `is_hidden` before reading this as "sold".</ResponseField>
    <ResponseField name="is_hidden" type="boolean">Whether the listing is hidden by the seller (manually or via holiday mode). Hidden listings render the same "Sold" banner on Vinted — this flag is the only way to tell them apart from sold ones.</ResponseField>
    <ResponseField name="is_visible" type="boolean">`false` when the listing is hidden from the catalog (`!is_hidden`).</ResponseField>
    <ResponseField name="user" type="object">Seller summary (`id`, `login`, `photo_url`, `business`).</ResponseField>

    <ResponseField name="seller" type="object">
      Richer seller record: `id`, `login`, `photo_url`, `business`, `feedback_count`, `feedback_reputation`, `item_count`, `location`, `last_seen`, `badges`.
    </ResponseField>
  </Expandable>
</ResponseField>

### Listing states

Every response is read live from the Vinted listing page at request time —
there is no cache. The state flags combine as follows:

| State                                 | HTTP | `is_closed` | `can_buy` | `is_hidden` | `is_reserved` |
| ------------------------------------- | ---- | ----------- | --------- | ----------- | ------------- |
| Active                                | 200  | `false`     | `true`    | `false`     | `false`       |
| Sold                                  | 200  | `true`      | `false`   | `false`     | `false`       |
| Hidden by seller (incl. holiday mode) | 200  | `true`      | `false`   | `true`      | `false`       |
| Reserved for a buyer                  | 200  | —           | `false`   | `false`     | `true`        |
| Deleted / withdrawn                   | 404  | —           | —         | —           | —             |

To detect a **sale**, require `is_closed && !can_buy && !is_hidden && !is_reserved`.
Vinted shows the same "Sold" banner for seller-hidden listings, so `is_closed`
alone over-counts; a hidden listing can come back on the market.

Listings the seller withdraws or deletes stop rendering entirely — they return
a fast `404`, never a closed page.

On a sold or hidden listing, `price.amount` is the seller's **asking price**
(Vinted keeps showing it). The realised sale price is not present anywhere in
Vinted's public payload, so we cannot expose it.

### Example Response

```json theme={null}
{
  "item": {
    "id": 9492962028,
    "title": "Tee shirt",
    "description": "Tee shirt Nike noir",
    "price": { "amount": "1.0", "currency_code": "EUR" },
    "service_fee": "0.75",
    "total_item_price": "1.75",
    "brand_title": "Nike Air",
    "brand_id": 5977,
    "catalog_id": 221,
    "category": ["Femmes", "Vêtements", "Hauts et t-shirts", "T-shirts", "Nike Air T-shirts"],
    "size_title": "S / 36 / 8",
    "size_id": 506,
    "status": "Très bon état",
    "status_id": 50,
    "color1": "Noir, Blanc",
    "color2": null,
    "photos": [
      {
        "id": 40179825222,
        "url": "https://images1.vinted.net/t/...",
        "full_size_url": "https://images1.vinted.net/tc/...",
        "width": 600,
        "height": 800,
        "dominant_color": "#36363D",
        "is_main": true
      }
    ],
    "url": "https://www.vinted.fr/items/9492962028-tee-shirt",
    "view_count": 0,
    "favourite_count": 4,
    "upload_date": "Il y a une semaine",
    "can_buy": true,
    "instant_buy": true,
    "is_closed": false,
    "user": {
      "id": 20298345,
      "login": "majy.p",
      "photo_url": "https://images1.vinted.net/t/...",
      "business": false
    },
    "seller": {
      "id": 20298345,
      "login": "majy.p",
      "business": false,
      "feedback_count": 356,
      "feedback_reputation": 1.0,
      "last_seen": "Vu la dernière fois : il y a une heure",
      "badges": ["ACTIVE_LISTER", "SPEEDY_SHIPPING"]
    }
  },
  "market": "fr"
}
```

<Note>
  Search results do **not** carry `catalog_id` or `brand_id` — Vinted's catalog
  endpoint doesn't return them, so they're only available here, one call per item.
  To narrow results by category or brand, filter at search time with
  `catalog_ids` / `brand_ids` instead.
</Note>

<Note>
  Each item detail request costs **10 credits**. Failed requests are not charged. The exact charge for any call is returned in the `X-Credits-Used` response header.
</Note>


## OpenAPI

````yaml GET /v1/vinted/items/{item_id}
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/items/{item_id}:
    get:
      summary: Get Item Details
      description: Get detailed information about a Vinted item.
      operationId: getVintedItemDetail
      parameters:
        - name: item_id
          in: path
          required: true
          schema:
            type: integer
          description: The unique Vinted item ID.
        - name: market
          in: query
          schema:
            type: string
            default: fr
          description: Vinted market where the item is listed (e.g. fr, de, uk).
      responses:
        '200':
          description: Item details
          content:
            application/json:
              schema:
                type: object
                properties:
                  item:
                    $ref: '#/components/schemas/VintedItemDetail'
                  market:
                    type: string
                    description: Echo of the requested market.
components:
  schemas:
    VintedItemDetail:
      allOf:
        - $ref: '#/components/schemas/VintedItemSummary'
        - type: object
          properties:
            description:
              type: string
              nullable: true
              description: Full item description text.
            catalog_id:
              type: integer
              nullable: true
              description: >-
                Vinted catalog (category) ID — the value to pass as catalog_ids
                on search.
            brand_id:
              type: integer
              nullable: true
              description: Vinted brand ID — the value to pass as brand_ids on search.
            category:
              type: array
              items:
                type: string
              description: Category breadcrumb, root first. Localized to the market.
            size_id:
              type: integer
              nullable: true
              description: Vinted size ID.
            status_id:
              type: integer
              nullable: true
              description: Vinted condition ID.
            color1:
              type: string
              nullable: true
              description: Primary color, localized.
            color2:
              type: string
              nullable: true
              description: Secondary color.
            upload_date:
              type: string
              nullable: true
              description: >-
                Vinted's relative "listed" label, localized (e.g. "Il y a une
                semaine") — not an ISO timestamp.
            can_buy:
              type: boolean
            instant_buy:
              type: boolean
            can_bundle:
              type: boolean
            can_reserve:
              type: boolean
            is_favourite:
              type: boolean
            is_reserved:
              type: boolean
            is_closed:
              type: boolean
            is_hidden:
              type: boolean
            seller:
              $ref: '#/components/schemas/VintedSellerSummary'
    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.
    VintedSellerSummary:
      type: object
      properties:
        id:
          type: integer
          description: Seller 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.
        feedback_count:
          type: integer
          description: Number of reviews received.
        feedback_reputation:
          type: number
          description: Reputation score between 0 and 1.
        item_count:
          type: integer
          description: Number of items listed.
        location:
          type: string
          nullable: true
          description: Seller location as shown on the listing.
        last_seen:
          type: string
          nullable: true
          description: Vinted's relative last-seen label, localized.
        badges:
          type: array
          items:
            type: string
          description: Seller badges (e.g. ACTIVE_LISTER).
    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.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````