Getmobil API & Scraper
The Getmobil API returns getmobil.com, Turkey's refurbished-electronics marketplace, as clean JSON in five actions: search, category, product, filters and categories.
🤖 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.
Getmobil sells refurbished iPhones, Samsung, Xiaomi and other Android phones, iPads and other tablets, MacBooks and smartwatches, plus accessories, from its own refurbishment centre and from several hundred independent sellers on one catalogue. A device variant there is one model in one storage size, one colour and one cosmetic condition, and the same variant can be stocked by several sellers: the cheapest eligible offer wins the buy box and that is the price the page prints. The product action returns exactly that printed price in TRY together with the monthly instalment the page shows, the stock count, the buy-box seller with its Getmobil score and badges, and every other seller's competing offer with its own price, stock, shipping days and score. It also returns Getmobil's five cosmetic-condition tiers, carried verbatim with the source's own names (Premium+, Premium, Mükemmel, İyi, Outlet), each with its own price and an in-stock flag, the storage and colour selectors with the price step between them, the full technical spec sheet, the image gallery and the breadcrumb path. By default it also reads the model's complete variant matrix: on the iPhone 13 measured on 2026-10-07 that was 41 variants, each with its own price, stock and seller id, and on the iPhone 16 Pro Max and iPhone 15 Pro 34 each. search answers a keyword the way getmobil.com's own search box does, 20 variant rows a page with the source's own attribute list and the source's own match count. category browses any category or model page with the storefront's own filters: cosmetic condition, brand, storage, colour, seller, price range, fast delivery, trusted seller and successful seller, all measured to change the total in the same run (278 phone models unfiltered; Premium+ 38, İyi 79, Samsung 93, 256 GB 113, price 20,000 to 30,000 TRY 52). No Getmobil account and no API key on their side: one ReefAPI key and the standard { ok, data, meta, error } envelope.
Getmobil's five cosmetic-condition tiers and what the filter returned on 2026-10-07
The tier names and ids are the source's own. Counts are the source's own totals on the phone category (278 models unfiltered) and on the iPhone 13 model page (41 variants unfiltered), measured twice on the same day with identical results.
| condition (verbatim) | condition value | phone models | iPhone 13 variants |
|---|---|---|---|
| Premium+ | premium_plus | 38 | 7 |
| Premium | premium | 35 | 7 |
| Mükemmel | perfect | 269 | 18 |
| İyi | good | 79 | 8 |
| Outlet | outlet | 0 | 1 |
One condition per call: the source silently ignores a combined value and returns the whole category, so the API accepts exactly one. Keyword search ignores the condition filter at the source, so it is only offered on category. A sixth label, Çok İyi, appeared on 2 of 1,024 rows measured and has no filter value at the source; it is returned verbatim with condition_code very_good.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/getmobil/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "iphone 13",
"sort": "price_desc"
}
}{
"ok": true,
"meta": {
"api": "getmobil",
"endpoint": "search",
"mode": "live",
"latency_ms": 1584.6,
"record_count": 20,
"bytes": 174426,
"cache_hit": false,
"total_results": 6845,
"page": 1,
"last_page": 343,
"page_size": 20,
"has_more": true,
"query": "iphone 13",
"filters_applied": {
"sortStrategy": "price-desc"
},
"upstream_requests": 1,
"charged_credits": 2,
"version": "1.0.0",
"request_id": "735f8507b4fa4e01",
"queue_ms": 1.9,
"fetched_at": "2026-10-07T15:52:09.555Z"
},
"data": {
"products": [
{
"variant_id": 173813,
"title": "Apple iPhone 17 Pro Max - 1 TB - Gümüş",
"model": "Apple iPhone 17 Pro Max",
"variant_options": [
"1 TB",
"Gümüş"
],
"storage": "1 TB",
"colour": "Gümüş",
"colour_hex": null,
"attributes": {
"Renk": "Gümüş",
"Depolama": "1 TB",
"Kozmetik Durumu": "Mükemmel",
"ESim": "Hayır"
},
"condition": "Mükemmel",
"condition_code": "perfect",
"condition_id": null,
"price_try": 193899,
"price_display": "193.899 TL",
"strikethrough_price_try": null,
"min_sell_price_try": 193899,
"sell_base_price_try": 144000,
"currency": "TRY",
"stock": 2,
"in_stock": true,
"has_fast_delivery": false,
"has_trusted_seller": false,
"has_successful_seller": false,
"has_vendor_of_the_month": true,
"vendor_id": null,
"sku": "9999010114730",
"brand": "Apple",
"category_path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max",
"category_titles": "Cep Telefonu > iPhone iOS Telefon > Apple > iPhone 17 Pro Max",
"product_type": "REFURBISHED",
"total_sold": 0,
"favorite_count": null,
"view_count_24h": null,
"image": "https://assets.getmobil.com/uploads/86316ca7-4c34-45f4-8bc5-42bc8f0e57c5/getmobil-apple-iphone-17-pro-max-gumus-1-.webp",
"path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-1-tb-gumus-173813",
"url": "https://getmobil.com/satin-al/cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-1-tb-gumus-173813/",
"position": 1,
"row_type": "variant"
},
{
"variant_id": 173825,
"title": "Apple iPhone 17 Pro Max - 1 TB - Kozmik Turuncu",
"model": "Apple iPhone 17 Pro Max",
"variant_options": [
"1 TB",
"Kozmik Turuncu"
],
"storage": "1 TB",
"colour": "Kozmik Turuncu",
"colour_hex": null,
"attributes": {
"Depolama": "1 TB",
"Kozmetik Durumu": "Mükemmel",
"Renk": "Kozmik Turuncu",
"ESim": "Hayır"
},
"condition": "Mükemmel",
"condition_code": "perfect",
"condition_id": null,
"price_try": 179000,
"price_display": "179.000 TL",
"strikethrough_price_try": null,
"min_sell_price_try": 179000,
"sell_base_price_try": 144000,
"currency": "TRY",
"stock": 1,
"in_stock": true,
"has_fast_delivery": true,
"has_trusted_seller": false,
"has_successful_seller": false,
"has_vendor_of_the_month": false,
"vendor_id": null,
"sku": "9999010114731",
"brand": "Apple",
"category_path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max",
"category_titles": "Cep Telefonu > iPhone iOS Telefon > Apple > iPhone 17 Pro Max",
"product_type": "REFURBISHED",
"total_sold": 1,
"favorite_count": null,
"view_count_24h": null,
"image": "https://assets.getmobil.com/uploads/67923055-aca4-49d1-82b9-7a6815490631/getmobil-apple-iphone-17-pro-max-kozmik-turuncu-1-.webp",
"path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-1-tb-kozmik-turuncu-173825",
"url": "https://getmobil.com/satin-al/cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-1-tb-kozmik-turuncu-173825/",
"position": 2,
"row_type": "variant"
},
{
"variant_id": 204496,
"title": "Apple iPhone 17 Pro Max - 256 GB - Gümüş",
"model": "Apple iPhone 17 Pro Max",
"variant_options": [
"256 GB",
"Gümüş"
],
"storage": "256 GB",
"colour": "Gümüş",
"colour_hex": null,
"attributes": {
"Renk": "Gümüş",
"Depolama": "256 GB",
"ESim": "Hayır",
"Kozmetik Durumu": "Premium+"
},
"condition": "Premium+",
"condition_code": "premium_plus",
"condition_id": null,
"price_try": 169999,
"price_display": "169.999 TL",
"strikethrough_price_try": null,
"min_sell_price_try": 169999,
"sell_base_price_try": 138999,
"currency": "TRY",
"stock": 1,
"in_stock": true,
"has_fast_delivery": false,
"has_trusted_seller": false,
"has_successful_seller": false,
"has_vendor_of_the_month": false,
"vendor_id": null,
"sku": "9999010164724",
"brand": "Apple",
"category_path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max",
"category_titles": "Cep Telefonu > iPhone iOS Telefon > Apple > iPhone 17 Pro Max",
"product_type": "REFURBISHED",
"total_sold": 0,
"favorite_count": null,
"view_count_24h": null,
"image": "https://assets.getmobil.com/uploads/f28f2d44-378e-4910-9e02-a424b605c370/getmobil-apple-iphone-17-pro-max-gumus-1-.webp",
"path": "cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-256-gb-gumus-204496",
"url": "https://getmobil.com/satin-al/cep-telefonu/iphone-ios-telefonlar/apple/iphone-17-pro-max/apple-iphone-17-pro-max-256-gb-gumus-204496",
"position": 3,
"row_type": "variant"
}
]
}
}What the Getmobil API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Keyword search across getmobil.com, exactly as its own search box answers: one row per device VARIANT (model + storage + colour + condition) with the live buy-box price in TRY, stock, the source's own attribute list and the variant id to open with `product`. 20 rows per page. `meta.total_results` is the source's own match count. Matching is fuzzy at the source (accessories match phone keywords); use `category` for an exact model. `sort`, `price_min`/`price_max` and `brand` were each measured to change the total; the condition filter is NOT honoured by the source's search and is therefore only offered on `category`. | Pricing teams call search to get keyword search across getmobil.com, exactly as its own search box answers. | query, sort, price_min, price_max, brand, ... |
| category | Browse one getmobil category or model page with the storefront's own filters. A top or brand category returns one row per MODEL (from-price, buy-box variant, a preview of its variants); a MODEL path returns one row per VARIANT (storage x colour x cosmetic condition) with its price, stock and buy-box seller id. 12 rows per page. Every filter here was measured to change the source's own total against an unfiltered call in the same run; `meta.total_results` is that total. | Marketplace operators call category to get browse one getmobil category or model page with the storefront's own filters. | category, condition, brand, storage, colour_id, ... |
| product | The full record of one device variant by `variant_id`: live TRY price as the page prints it, monthly instalment, stock, the buy-box seller with its score and badges, EVERY other seller's offer (price, stock, shipping days, score), the five cosmetic-condition tiers with each tier's price and stock flag, the storage and colour selectors with price steps, full technical specs, images, breadcrumbs and add-ons (e.g. battery replacement). With `all_variants` (default) it also returns the model's complete storage x colour x condition matrix, one row per variant with its own price, stock and seller id. An unknown id is NOT_FOUND. | Catalog enrichment teams call product to get the full record of one device variant by `variant_id`. | variant_id, path, all_variants |
| filters | The live filter vocabulary of one category, as the storefront itself builds its filter panel: brands with ids, models with paths, every seller (vendor id + name), the attribute values with the source's ids (Depolama, Renk, Ekran Boyutu, İşlemci, Bellek …) and the badge toggles. Use it to find a `colour_id` or `vendor_id`. One request. | Retail analysts call filters to get the live filter vocabulary of one category, as the storefront itself builds its filter panel. | category |
| categories | getmobil's live category tree as its own site navigation publishes it (120 categories on 2026-10-07; the source's sitemap lists 405 category URLs including deeper model pages, which `category` also accepts): every category with id, title, path (feed it to `category`), depth, parent and the category's best-selling variant with its buy-box price. One request. | Pricing teams call categories to get getmobil's live category tree as its own site navigation publishes it (120 categories on 2026…. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/getmobil/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone 13","sort":"price_desc"}'import requests
r = requests.post(
"https://api.reefapi.com/getmobil/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone 13",
"sort": "price_desc"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/getmobil/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "iphone 13",
"sort": "price_desc"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.getmobil.search with {"query":"iphone 13","sort":"price_desc"}.Who uses this API and why
- Track refurbished iPhone and Samsung prices in Turkey by condition: pull a model's full storage, colour and condition matrix in one call and chart what Premium+ costs over İyi for the same 128 GB phone.
- Monitor sellers on a marketplace: every product call returns the buy-box seller and every competing seller's price, stock, shipping days and Getmobil score, so you can see who wins the buy box and by how much.
- Price a trade-in or resale business against the live secondary market: browse a model page filtered by storage and condition and read the source's own price and stock per variant.
- Build a refurbished-device comparison tool for Turkish buyers: search by keyword, then open any variant for its specs, images, instalment line and condition ladder.
- Measure supply in the Turkish refurbished market: the category totals per brand, condition, storage and seller come straight from the source, for example 278 phone models with 93 Samsung and 38 Premium+ on 2026-10-07.
Questions developers ask before integrating
Which price do I get, and is it the one the page shows?
The buy-box price the product page prints, in TRY. We checked it three ways on ten variants across phones, a MacBook, an iPad, a Galaxy, an Apple Watch, a tablet and an accessory: it equalled the model page's listing price 10 of 10 times and the condition selector's price 9 of 9 times (the accessory has no condition selector). price_display carries it the way the page writes it, for example 29.999 TL, and monthly_installment_display carries the instalment line, for example 2.499,92 TL over 12 instalments.
Why not just read the structured product data on the page?
Because on this site it is not the price a buyer sees. The page's own schema.org ProductGroup lists the other sellers' offers but leaves out the buy-box seller, so the price it gives for the page's own variant was the cheapest competing offer on 9 of 10 variants we checked: 30,495 TRY where the page prints 29,999 on an iPhone 13, and 12,950 TRY where the page prints 9,500 on an Apple Watch SE. The API publishes the printed price and gives you the competing offers separately in other_offers, which matched that structured list exactly on 9 of 10 variants; on the tenth there was no other seller.
Do I get the seller?
Yes, as the page publishes it. seller is the buy-box winner with its vendor id, name, store link, Getmobil score out of 10 and its top-seller, trusted-seller and vendor-of-the-month badges, plus whether it is Getmobil itself. other_offers lists every other seller of the same variant with its price, stock, shipping days, fast-delivery flag and score. On the iPhone 16 Pro Max 256 GB measured there were nine other sellers between 102,999 and 135,000 TRY behind a 93,349 TRY buy box.
How do I get every storage, colour and condition of one model?
Call product with any variant id of that model; all_variants is on by default and returns the model's full matrix, one row per variant with storage, colour, condition, price, stock, seller id and its own variant id. Measured: iPhone 13 41 variants, iPhone 16 Pro Max 34, iPhone 15 Pro 34, each row carrying a price and stock. If you only need the one page, pass all_variants false and the call stays on the product page alone. The matrix lists variants that are currently on sale; a tier that is out of stock still appears in condition_options with in_stock false and no price.
Does keyword search only return the model I typed?
No. Getmobil's own search is fuzzy: iphone 13 reported 6,828 matches including cases and chargers, and sorting that result cheapest-first started with a 115 TRY accessory. A nonsense keyword honestly returns zero. When you want exactly one model, browse its model page with category, for example cep-telefonu/iphone-ios-telefonlar/apple/iphone-13, which returned 41 variants and nothing else.
How do I know a filter actually did something?
Every response carries meta.total_results, the source's own total for your request, and meta.filters_applied. Against 278 phone models in the same run: Premium+ 38, İyi 79, Samsung 93, 256 GB 113, colour Siyah 106, seller Getmobil 45, price 20,000 to 30,000 TRY 52, fast delivery 193, trusted seller 106, successful seller 67. On the iPhone 13 model page: Premium+ 7 of 41, 256 GB 10, fast delivery 25. Values the source would silently ignore, such as a second condition or an unknown sort, are rejected with the allowed list instead.
Is there a GTIN, EAN or IMEI?
No. Getmobil publishes no barcode, GTIN or IMEI on its public pages. What it does publish is its own 13-digit stock code, returned as sku (9999010130112 for an iPhone 13 128 GB Gece Yarısı in İyi condition), plus the model id and the variant id.
What about warranty?
Getmobil states a 12-month warranty in its site navigation, the same text on every page, so the API does not repeat it as a per-product fact. The source also has a per-variant official warranty end date field, but it was empty on all 209 rows we measured, so it is not offered rather than returned as a column of nulls.
What is the Getmobil API?
Getmobil API is a ReefAPI endpoint group for turkey's refurbished-phone marketplace as json: every storage, colour and cosmetic-condition variant of a model with its own try price and stock, the buy-box seller and every competing seller's offer. It returns live JSON through POST requests under /getmobil/v1.
Is the Getmobil API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Getmobil calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Getmobil login or account?
No login to Getmobil 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 Getmobil 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 Getmobil API use?
Getmobil 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 Getmobil from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call getmobil actions with the same key, credit pool and JSON envelope used by normal REST requests.