# OfferUp Seller Listings API Documentation

Scrappa's `GET /api/offerup/seller-listings` endpoint returns every listing a seller currently has live on OfferUp.

## Two differences from the other OfferUp endpoints

`user_id` is a string on this resolver and an integer on [Seller Profile](/docs/offerup-api/offerup_seller_profile), which is an easy mistake to make.

`limit` is forwarded upstream here, but OfferUp is not trusted to stop exactly there and the page is returned whole, so `count` may exceed `limit`. That is deliberate: the returned `page_cursor` already points past everything the origin sent, so dropping rows to fit `limit` would make them unreachable. Paginate with `page_cursor` and treat `count` as the size of the page you actually received.

## Use this to enrich seller views

Combined with [Seller Profile](/docs/offerup-api/offerup_seller_profile), this gives a seller page both reputation and inventory in two calls. Listing detail for any returned `listing_id` comes from [Item Details](/docs/offerup-api/offerup_item_details).

`page_cursor` is null on the last page. OfferUp does not always signal the last page reliably, so treat a null cursor as "no further page was offered" and stop the walk when a page adds no new listing ids. A page may contain more rows than the `limit` you asked for; keep walking until ids repeat.

- **Documentation:** [https://scrappa.co/docs/offerup-api/offerup_seller_listings](https://scrappa.co/docs/offerup-api/offerup_seller_listings)
- **API group:** OfferUp API
- **Endpoint:** `GET https://scrappa.co/api/offerup/seller-listings`

## 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 |
| --- | --- | --- | --- |
| `user_id` | string | Yes | OfferUp user id for the seller. |
| `limit` | string | No | Listings per page requested upstream, 1-100. The origin may return more than this in one page, so treat `count` as authoritative. |
| `page_cursor` | string | No | Opaque cursor from a previous page. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/offerup/seller-listings?user_id=3827441&limit=20"
```

## Example response

```json
{
    "success": true,
    "user_id": "3827441",
    "count": 1,
    "results": [
        {
            "listing_id": "9c1f6a2e-4b7d-4a51-9f0e-1d2c3b4a5e6f",
            "title": "iPhone 13 128GB Blue",
            "price": 320,
            "state": "ACTIVE"
        }
    ],
    "page_cursor": null
}
```

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