Tise API & Scraper
Tise is the second-hand marketplace that started in Norway and now runs in Sweden, Denmark, Finland, Germany, the Netherlands, the UK, the US and Australia, mostly through its app.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
This API reads it as JSON. `search` takes free text plus Tise's own filters: category, brand, condition (new, lightly used, used, well used), colour, material, gender, size, a price range and Tise Second Chance, sorted newest first, by relevance or by price, 18 listings a page. `product` returns one listing in full, including sold ones. `seller` returns a public profile with rating and review count, `seller_listings` pages through a seller's whole closet including the items they already sold, and `seller_reviews` returns the reviews they got as a seller or a buyer. `filters` gives Tise's own result count for any query, and `brands`, `categories` and `suggest` return the ids the filters take.
What a Tise field actually contains
Fields that read differently from how they look. Every row was measured against live Tise responses on 2026-10-14.
| Field | What it holds |
|---|---|
| price, price_minor, currency | price is in the listing's own currency (NOK, SEK, DKK, EUR, GBP, USD or AUD, in currency). Tise stores it in minor units: price_minor 20000 is price 200. Nothing is converted. price matched the listing page's own published price on 21 of 21 items we checked, sold items included. |
| price_zero | True when the seller set the price to 0. These are giveaways, swap offers, wanted posts and notices, not free items for sale: all 16 listings on the first price-ascending page for jeans in Norway were price 0. price is null for them. Pass min_price 1 to leave them out. |
| is_sold | search lists only items still for sale. seller_listings also returns the items a seller already sold, at the price they were listed: 93 of 111 rows for one long-time seller were sold. product reads a sold item by id. |
| brand and custom_brand | brand is the brand the seller picked from Tise's list, with its id. custom_brand is a name the seller typed instead. Many home and hobby listings have neither, and then both are null. |
| size | As the seller picked it: S or M for clothes, 38 for shoes. Home and hobby listings carry no size. To filter, use the group: tops:M, bottoms:S, shoes:38. |
| gender | female, male or any (unisex), set by the seller. A gender filter also returns listings with no gender set, never the other gender. |
| location | The area Tise shows for the listing (for example a town or an Oslo district) with approximate coordinates. Tise rounds it itself (accuracy approximate). |
| shipping | The carriers the listing offers (for example Posten, Instabox, Helthjem in Norway) and Tise's own 'from' line, such as "Frakt fra NOK 49". meet_in_person says whether the seller also hands over in person. |
| is_second_chance | True for Tise Second Chance listings: brands selling returns, samples and seconds through Tise. second_chance=true filters on it. |
| is_promoted | True when the seller paid to promote the listing; promotion_label is Tise's own label for it. |
Tise mixes two sponsored banners into every search page. They point at a profile and are not items for sale, so they are removed; sponsored_tiles_dropped says how many.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/tise/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "levis",
"country": "no",
"condition": [
"lightly_used"
]
}
}{
"ok": true,
"meta": {
"api": "tise",
"endpoint": "search",
"mode": "live",
"latency_ms": 542.4,
"record_count": 16,
"bytes": 86628,
"cache_hit": false,
"upstream_requests": 1,
"sponsored_tiles_dropped": 2,
"charged_credits": 2,
"version": "1.0.0",
"request_id": "6b899adfd83a4e11",
"queue_ms": 1.2,
"fetched_at": "2026-10-14T18:57:31.131Z"
},
"data": {
"query": "levis",
"country": "no",
"sort": "newest",
"filters_applied": [
{
"key": "condition",
"value": "lightly_used"
}
],
"count": 16,
"has_more": true,
"next_cursor": "next_key=eyJiZWZvcmVUaW1lc3RhbXAiOjE3OTE5OTkwNTEyMzgsImJlZm9yZVNob3J0SWQiOiJZcUVqWFNHTlUifQ%3D%3D",
"sponsored_tiles_dropped": 2,
"listings": [
{
"id": "kEOwdT6wo",
"advert_id": "6acfd06497b7ed6feda397de",
"url": "https://tise.com/t/kEOwdT6wo",
"title": "Denim shorts",
"description": "Svarte 501 denimshorts fra Levis.",
"brand": {
"id": "vuYRhl",
"name": "Levi's"
},
"custom_brand": null,
"category": "wearables.clothes.shorts",
"category_path": [
"wearables",
"clothes",
"shorts"
],
"condition": "lightly_used",
"condition_label": "Pent brukt",
"condition_en": "lightly used, no signs of use",
"size": "M",
"fits_like": null,
"gender": "female",
"colors": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
},
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"materials": [],
"price": 200,
"price_zero": false,
"price_minor": 20000,
"currency": "NOK",
"is_sold": false,
"instant_buy": false,
"resell_allowed": true,
"like_count": 0,
"country_code": "NO",
"location": {
"label": "Geithus",
"lat": 59.942545,
"lng": 9.969474,
"accuracy": "approximate",
"radius_m": 500
},
"shipping": {
"options": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"summary": "Frakt fra NOK 49",
"size_category": "medium"
},
"meet_in_person": true,
"meet_summary": "Møt selgeren",
"image": "https://static.tise.com/6acfd06497b7ed6feda397de/image0/e2958b5f-cfd1-4595-9386-009fc99a41a1/denim-shorts",
"images": [
"https://static.tise.com/6acfd06497b7ed6feda397de/image0/e2958b5f-cfd1-4595-9386-009fc99a41a1/denim-shorts",
"https://static.tise.com/6acfd06497b7ed6feda397de/image1/f835511f-fe7b-40fc-a7db-5db674fdb6c2/denim-shorts"
],
"image_count": 2,
"created_at": "2026-10-14T18:56:36.513Z",
"updated_at": "2026-10-14T18:56:36.957Z",
"visible_since": "2026-10-14T18:56:36.513Z",
"is_second_chance": false,
"is_promoted": false,
"promotion_label": null,
"seller_id": "58e29448cf6881000fb8a53f",
"seller": {
"id": "58e29448cf6881000fb8a53f",
"username": "ingeborgul",
"name": "Ingeborg S",
"points": 14175,
"picture": "https://graph.facebook.com/1128004433935862/picture?type=large&access_token=588022061239937%7C545fe9d34295a04b3b7870793e33fed4",
"profile_url": "https://tise.com/ingeborgul",
"badges": [
"[trimmed-depth]"
]
}
},
{
"id": "6xq8D19uX",
"advert_id": "6acfcfb0b5eb529aa2e4daca",
"url": "https://tise.com/t/6xq8D19uX",
"title": "Levis 501",
"description": "Så si nye Levis jeans kunn brukt 1 gang.\nModell: 501 \nNy pris: 1 200 kr\nKjøpt nylig\nPris kan diskuteres ved rask handel",
"brand": {
"id": "vuYRhl",
"name": "Levi's"
},
"custom_brand": null,
"category": "wearables.clothes.pants.jeans",
"category_path": [
"wearables",
"clothes",
"pants"
],
"condition": "lightly_used",
"condition_label": "Pent brukt",
"condition_en": "lightly used, no signs of use",
"size": "M",
"fits_like": "true_to_size",
"gender": "male",
"colors": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"materials": [],
"price": 400,
"price_zero": false,
"price_minor": 40000,
"currency": "NOK",
"is_sold": false,
"instant_buy": false,
"resell_allowed": true,
"like_count": 0,
"country_code": "NO",
"location": {
"label": "Løten",
"lat": 60.841069,
"lng": 11.383787,
"accuracy": "approximate",
"radius_m": 500
},
"shipping": {
"options": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"summary": "Frakt fra NOK 49",
"size_category": "medium"
},
"meet_in_person": true,
"meet_summary": "Møt selgeren",
"image": "https://static.tise.com/6acfcfb0b5eb529aa2e4daca/image0/596bbee0-3d51-494c-b421-756e25adbe26/levis-",
"images": [
"https://static.tise.com/6acfcfb0b5eb529aa2e4daca/image0/596bbee0-3d51-494c-b421-756e25adbe26/levis-",
"https://static.tise.com/6acfcfb0b5eb529aa2e4daca/image1/0d8589ed-c294-4acb-beef-80fc1e8b52e3/levis-",
"https://static.tise.com/6acfcfb0b5eb529aa2e4daca/image2/63f4612c-7602-42c8-94fe-263c4c545610/levis-"
],
"image_count": 5,
"created_at": "2026-10-14T18:53:36.901Z",
"updated_at": "2026-10-14T18:53:37.190Z",
"visible_since": "2026-10-14T18:53:36.901Z",
"is_second_chance": false,
"is_promoted": false,
"promotion_label": null,
"seller_id": "692da6cd3d65e6828072c092",
"seller": {
"id": "692da6cd3d65e6828072c092",
"username": "miksd",
"name": "Miks D",
"points": 10500,
"picture": "https://static.tise.com/uploads/tise-assets/png/DefaultProfilePicture_light_3x-5b821e90.png",
"profile_url": "https://tise.com/miksd",
"badges": [
"[trimmed-depth]"
]
}
},
{
"id": "6xHDQkPJ3",
"advert_id": "6acfcd2b4ade0069992585ab",
"url": "https://tise.com/t/6xHDQkPJ3",
"title": "Denimjakke",
"description": "Levi's denimjakke med klassisk lyseblå vask, brystlommer og fine sømdetaljer. En kul og tidløs favoritt.",
"brand": {
"id": "vuYRhl",
"name": "Levi's"
},
"custom_brand": null,
"category": "wearables.clothes.jackets.denim",
"category_path": [
"wearables",
"clothes",
"jackets"
],
"condition": "lightly_used",
"condition_label": "Pent brukt",
"condition_en": "lightly used, no signs of use",
"size": "S",
"fits_like": "true_to_size",
"gender": "female",
"colors": [
{
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"hex": "[trimmed-depth]"
}
],
"materials": [],
"price": 250,
"price_zero": false,
"price_minor": 25000,
"currency": "NOK",
"is_sold": false,
"instant_buy": false,
"resell_allowed": true,
"like_count": 1,
"country_code": "NO",
"location": {
"label": "Levanger",
"lat": 63.752076,
"lng": 11.265004,
"accuracy": "approximate",
"radius_m": 500
},
"shipping": {
"options": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"summary": "Frakt fra NOK 29",
"size_category": "small"
},
"meet_in_person": true,
"meet_summary": "Møt selgeren",
"image": "https://static.tise.com/6acfcd2b4ade0069992585ab/image0/bc1dca9b-cc76-4d3e-873d-bc224f6f249c/denimjakke",
"images": [
"https://static.tise.com/6acfcd2b4ade0069992585ab/image0/bc1dca9b-cc76-4d3e-873d-bc224f6f249c/denimjakke",
"https://static.tise.com/6acfcd2b4ade0069992585ab/image1/9ec5e037-19cc-4b63-8646-2c346311e22a/denimjakke",
"https://static.tise.com/6acfcd2b4ade0069992585ab/image2/3b0a5ede-06c4-407d-9847-3d14a7799bec/denimjakke"
],
"image_count": 3,
"created_at": "2026-10-14T18:42:51.494Z",
"updated_at": "2026-10-14T18:42:51.761Z",
"visible_since": "2026-10-14T18:42:51.494Z",
"is_second_chance": false,
"is_promoted": false,
"promotion_label": null,
"seller_id": "67d2f2969ac7fa1fa23b8d85",
"seller": {
"id": "67d2f2969ac7fa1fa23b8d85",
"username": "carlamusum",
"name": "Carla M",
"points": 48181,
"picture": "https://static.tise.com/profile-pictures/67d2f2969ac7fa1fa23b8d85/09c2c7d3-f8a0-4aec-8f04-e01c15f6e549",
"profile_url": "https://tise.com/carlamusum",
"badges": [
"[trimmed-depth]"
]
}
}
]
}
}What the Tise API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Tise, the Nordic second-hand marketplace (clothes, shoes, bags, home, kids, hobby) in Norway, Sweden, Denmark, Finland, Germany, the Netherlands, the UK, the US or Australia. Free text plus the site's own filters: category, brand, condition, colour, material, gender, size, price range, Second Chance, and its four sort orders. 18 listings per page, paged by cursor. Nothing is required: no parameters lists the newest listings in Norway. | Pricing teams call search to search Tise, the Nordic second-hand marketplace (clothes, shoes, bags, home, kids, hobby) in…. | country, location, query, category, brand_ids, ... |
| product | One Tise listing in full: price (and whether it is a price-0 giveaway/swap post), condition, size, brand, category, colours, materials, every image, approximate location, shipping carriers and the 'from' price, meet-up option, likes, sold flag and the seller. Works for sold listings too. | Marketplace operators call product to get one Tise listing in full. | id, url, include_pii |
| seller | A Tise seller's public profile: name, country, bio (with Tise's own translations), member since, followers, active and lifetime listing counts, points, rating average and review count, trusted flag and badges. | Catalog enrichment teams call seller to get a Tise seller's public profile. | seller_id, username, include_pii |
| seller_listings | Every listing in one seller's closet, unsold first, then SOLD items with the price they were listed at — a sold-price history per seller. 18 per page, paged by cursor. | Retail analysts call seller_listings to get every listing in one seller's closet, unsold first, then SOLD items with the price they were…. | seller_id, cursor, include_pii |
| seller_reviews | Reviews a Tise user received as a seller (default) or as a buyer: stars, text, date, the kind of trade, and the reviewer. Paged by cursor. | Pricing teams call seller_reviews to get reviews a Tise user received as a seller (default) or as a buyer. | seller_id, role, cursor, include_pii |
| filters | The result count Tise shows for a search (it stops at 10 000+) and the filter values on offer: sizes groups, colours, conditions, materials, genders, location and the price steps, with the sort options. Takes the same filters as `search`, so it measures any query before you page through it. | Marketplace operators call filters to get the result count Tise shows for a search (it stops at 10 000+) and the filter values on offer. | country, location, query, category, brand_ids, ... |
| brands | Find Tise brand ids by name, for the `brand_ids` filter. | Catalog enrichment teams call brands to find Tise brand ids by name, for the `brand_ids` filter.. | query |
| categories | Tise's full category tree for a market (7 roots, 349 nodes on 2026-10-14) with each node's id for the `category` filter, its genders and size set. | Retail analysts call categories to get tise's full category tree for a market (7 roots, 349 nodes on 2026-10-14) with each node's id…. | country |
| suggest | Tise's own search-as-you-type: the categories, brands and users that match a few letters, each with the id the filters take. | Pricing teams call suggest to get tise's own search-as-you-type. | query, country |
Call search from your stack
curl -X POST https://api.reefapi.com/tise/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"levis","country":"no","condition":["lightly_used"]}'import requests
r = requests.post(
"https://api.reefapi.com/tise/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "levis",
"country": "no",
"condition": [
"lightly_used"
]
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/tise/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "levis",
"country": "no",
"condition": [
"lightly_used"
]
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.tise.search with {"query":"levis","country":"no","condition":["lightly_used"]}.Who uses this API and why
- Price second-hand fashion across the Nordics: search a brand in Norway, Sweden, Denmark and Finland and compare prices in each local currency.
- Track resale value for a brand: page a seller's closet through seller_listings and read which items sold at what listed price.
- Measure supply for any slice with filters: Tise's own count by brand, condition, colour, material, size and price range.
- Watch Tise Second Chance: brands selling returns and samples, with second_chance=true and the brand's own profile and ratings.
- Vet a seller before buying in bulk: rating, review count, reviews as seller and buyer, member since and active listings.
Questions developers ask before integrating
Do I need a Tise account?
No. Everything is read logged out, and you call reefapi.com from anywhere.
Which countries can I search?
Norway, Sweden, Denmark, Finland, Germany, the Netherlands, the UK, the US and Australia. Each listing keeps its own country_code and currency. On 2026-10-14 Norway, Sweden, Denmark, Finland and Germany each showed 10 000+ results for an unfiltered browse, Australia 5,964, the Netherlands 499, the US 258 and the UK 195.
How many results does a search have?
Call filters with the same parameters. It returns the count Tise itself shows. Tise stops counting at 10 000, and then total_capped is true. For example levis in Norway shows 10 000+, and new condition only narrows it to 4,212.
How do I page through results?
Each page has 18 listings (16 when Tise placed its two sponsored banners on it). Pass next_cursor from the response back as cursor, with the same other parameters. has_more is false on the last page.
Can I get the price items actually sold for?
Tise publishes the listed price, and keeps it on the listing after it sells. seller_listings returns a seller's sold items with that price and is_sold true. There is no separate final-sale price.
How do I find the brand or category id to filter on?
suggest returns the matching categories and brands with their ids for a few letters (levis gives Levi's, brand id vuYRhl). brands searches the brand list by name and categories returns the full tree of 349 categories.
Why do some listings have price null?
The seller set the price to 0: a giveaway, a swap, a wanted post or a notice. price_zero is true on those. Use min_price 1 if you want items for sale only.
Can I read the followers of a seller?
No. The profile returns the follower and following counts, not the lists of people.
What is the Tise API?
Tise API is a ReefAPI endpoint group for the nordic second-hand marketplace: listings with brand, size, condition, price in local currency, location, shipping and the seller's rating, plus sold items per seller. It returns live JSON through POST requests under /tise/v1.
Is the Tise API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Tise calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Tise login or account?
No login to Tise is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Tise data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Tise API use?
Tise actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Tise from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call tise actions with the same key, credit pool and JSON envelope used by normal REST requests.