# tutti.ch Listing API Documentation

Retrieve a single public tutti.ch ad by its listing id: title, plain-text description, integer CHF price (when priced) and price label, publish time (ISO 8601, UTC), language, category with parent, location with canton, coordinates, all images, the ad properties (for example condition) and the seller alias with member-since date. Private contact data is never returned. An unknown or removed id answers 404 and is not billed.

- **Documentation:** [https://scrappa.co/docs/tutti-api/tutti_listing](https://scrappa.co/docs/tutti-api/tutti_listing)
- **API group:** tutti.ch API
- **Endpoint:** `GET https://scrappa.co/api/tutti/listing`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | Numeric listing id returned by the search endpoint. Example: 83552572. |
| `language` | string | No | Label language: de (default), fr or it. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/tutti/listing?id=83552572"
```

## Example response

```json
{
    "success": true,
    "data": {
        "listing": {
            "id": "83552572",
            "title": "Sportliches Phoenix Mountainbike (26\" Zoll)",
            "description": "Verkaufe ein gepflegtes und voll funktionsf\u00e4higes Mountainbike der Marke Phoenix in der stylischen Farbkombination Schwarz mit giftgr\u00fcnen Akzenten.",
            "price": 180,
            "price_label": "180.-",
            "published_at": "2026-10-15T19:13:43Z",
            "language": "de",
            "category": {
                "id": "bicycles",
                "label": "Velos",
                "parent": {
                    "id": "sportsOutdoors",
                    "label": "Sport & Outdoor"
                }
            },
            "location": {
                "postcode": "8620",
                "name": "Wetzikon ZH",
                "canton": {
                    "code": "ZH",
                    "name": "Z\u00fcrich"
                }
            },
            "coordinates": {
                "latitude": 47.31916809082031,
                "longitude": 8.807463645935059
            },
            "images": [
                "https://c.tutti.ch/big/4317431175.jpg"
            ],
            "properties": [
                {
                    "id": "bicycles_itemCondition",
                    "label": "Zustand",
                    "value": "Gebraucht"
                }
            ],
            "seller": {
                "alias": "Alessio",
                "member_since": "2018-10-07T12:00:31Z"
            }
        }
    },
    "meta": {
        "endpoint_family": "listing",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | The id is missing or not numeric. This response is not billable. |
| 404 | Listing Not Found | The listing does not exist or was removed. This response is not billable. |
| 502 | Unexpected Upstream Response | tutti.ch answered with an error or an unexpected shape. This response is not billable; retry later. |
| 503 | Upstream Unavailable | tutti.ch is temporarily unreachable or blocked the request. This response is not billable; retry later. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
