Latin American fashion as JSON, size by size
The Dafiti API turns Latin America's largest fashion marketplace into clean JSON in four actions.
4 active endpoints, on 1 and 3 credit tiers.
- POST/dafiti/v1/search
- POST/dafiti/v1/category
- POST/dafiti/v1/product
- POST/dafiti/v1/availability
What Dafiti endpoints does ReefAPI ship?
4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Dafiti API
4 of 4 endpoints, ready to run
Size-level stock for up to 10 products in ONE call: per size, the variant code, whether it is buyable, how many units remain when Dafiti publishes that, and who ships it. Brazil only — the Colombian storefront does not publish stock.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Dafiti API works
Dafiti is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 280 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Watch a style sell out size by size, without a call per product
Clothing does not sell out all at once - it sells out in the middle sizes first, and a single in-stock flag hides that completely. Three calls give you the size curve for a whole brand and keep it fresh for one credit a sweep.
{"query": "tenis", "country": "br", "brand": "Nike"}857 products for Nike out of 34,678 unfiltered. Each row has sku, title, colour, both prices, the list price and the discount. Store the sku once; availability and product both take it.
{"skus": ["KO992SHF67UFS", "AD464SCF97UDM", "..."]}Up to 10 skus in ONE call. Per size you get the variant code, in_stock, and stock_qty when Dafiti publishes an exact figure (0-10) or stock_at_least: 11 when it does not. Track sizes_in_stock against sizes_total to see a style thinning out.
{"sku": "KO992SHF67UFS", "country": "br"}Only when you need the rest: the rating and review count, the attribute table, the images and the other colourways with their own prices. Re-run availability daily and product rarely.
A size curve per style instead of a single in-stock flag: for each of Nike's 857 products you hold every size with its own variant code, whether it is buyable, and an exact remaining count wherever Dafiti publishes one. Ten products refresh in one call, so a 500 style watchlist is 50 calls a sweep rather than 500, and you see size 40 go before the style itself ever reads as sold out.
curl -X POST https://api.reefapi.com/dafiti/v1/availability \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"skus":["KO992SHF67UFS"]}'{
"ok": true,
"data": { … },
"meta": {
"api": "dafiti",
"endpoint": "availability",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What each storefront publishes
Dafiti's Brazilian and Colombian storefronts are not the same site in two languages, and they do not publish the same fields. This is the measured difference, so you can decide before you build.
| Field | Brazil (br) | Colombia (co) |
|---|---|---|
| Currency | BRL | COP |
| Size-level availability | Yes - every size with its own variant code and buyable flag | Not published anywhere |
| Units remaining per size | Yes, up to 11; above that stock_at_least: 11 | Not published |
| Cash price vs card price | Both, in separate fields | One price |
| List price and discount | Yes, when the item is discounted | Yes, on 184 of 189 rows |
| Colour on search rows | 100% of rows | Not published (0 of 189) |
| Seller on search rows | sold_by_dafiti on every row | Not published (0 of 189) |
| Result total and last page | Yes - 34,678 results, 723 pages for tenis | Neither; page until a page is empty |
| Rating and review count | Yes, on product | Not published |
| availability action | Yes, up to 10 products per call | Refused, and says why |
Argentina and Chile are not options. Measured 2026-09-23: dafiti.com.ar now serves a fashion blog with no catalogue and dafiti.cl a farewell page announcing the store's closure, so country=ar and country=cl are rejected with that reason rather than returning an empty or irrelevant result.
Measured coverage, 2026-09-23
Every figure below was measured against the live storefronts on 2026-09-23, including the limits that count against us. Prices and size lists were checked against each product page's own published values, not against our own output.
2 of 4. Brazil (BRL) and Colombia (COP) still trade. Argentina now serves a fashion blog with no catalogue and Chile a page announcing the store's closure, so country=ar and country=cl are rejected with that reason instead of returning an empty result.
Dafiti never publishes a quantity above 11, so 11 means 'eleven or more'. Measured across 478 size-variants on 59 products: every value is 0 to 11 and 250 of them sit exactly at 11. The API returns stock_qty only for a real 0 to 10 figure and stock_at_least: 11 otherwise, rather than a made-up number.
34,678 products for a single Brazilian keyword (tenis), across 723 pages.
About 58 in Brazil, 48 in Colombia.
Checked against the product page's own machine-readable values on 20 products: selling price 20 of 20, card price 14 of 14, list price 14 of 14.
Size names and which sizes are buyable matched the product page on 14 of 14 products.
sku, title, brand, colour, url, image and both prices on 100% of rows across four categories (586 rows). List price and discount only where the item is actually discounted.
sku, title, brand, url, image and price on 189 of 189 rows; list price and discount on 184 of 189. Colour and seller are not published there at all.
Every offered filter narrows the source's own total; combining brand, colour and size takes 34,678 down to 104.
Review texts, seller ratings and ids, price history, and any size or stock data for Colombia.
What people build with Dafiti
The jobs this data is most often used for.
endpoints
credits per call
Fashion price trackers store the cash price and the card price as separate series, so a card number never overwrites the headline price a shopper actually sees.
Brands check size availability per colourway with availability, ten SKUs at a time, and see which sizes have sold out rather than whether the style is merely in stock.
Marketplace sellers reprice against Dafiti and read sold_by_dafiti to tell Dafiti's own stock from a third party's before matching a price.
Discount monitors watch list_price_brl against price_pix_brl to catch a real markdown, and ignore rows where the struck-through price equals the selling price.
What Dafiti data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 280 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/dafiti/v1/availability \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"skus":["KO992SHF67UFS"]}'import requests
r = requests.post(
"https://api.reefapi.com/dafiti/v1/availability",
headers={"x-api-key": REEF_KEY},
json={
"skus": [
"KO992SHF67UFS"
]
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Dafiti.
Get a free key →Does this really return stock per size, or just whether the product is in stock?▾
Per size. A shoe listed in 12 sizes comes back as 12 rows, each with its own variant code (for example KO992SHF67UFS-53 for size 35), an in_stock flag, the delivery type and the seller who ships it. sizes_in_stock and sizes_total sit next to the list, so on the sample product 5 of 7 sizes were buyable. The size names and which sizes were buyable were checked against the product page itself on 14 products and matched on 14 of 14. This is Brazil only; the Colombian storefront does not publish size names or stock at all, and says so instead of guessing.
Why is stock_qty sometimes null when the size is in stock?▾
Because Dafiti stops counting at 11. Measured across 478 size-variants on 59 products, every quantity it publishes is between 0 and 11 and 250 of them are exactly 11, so 11 means 'eleven or more', not eleven. When that happens you get stock_qty: null, stock_at_least: 11 and stock_capped: true; when Dafiti really does publish an exact figure, 0 through 10, it is in stock_qty. For the same reason stock_total is null whenever any size is capped and stock_total_at_least carries the lower bound - summing a ceiling would invent a number Dafiti never published.
Why are there two prices on every Brazilian product?▾
Because Brazilian shops quote two. price_pix_brl is the cash price the storefront headlines, price_card_brl is what the same item costs on a card, and wherever the cash discount applies the card price is exactly 10 percent higher - 144.43 against 129.99 on the sample product. list_price_brl holds the struck-through original (199.99) and discount_pct is computed from the prices, with the site's own badge kept separately in discount_pct_source so you can see if they ever disagree. Where a product has no cash discount the two prices are equal. All three were verified against the product page's own machine-readable values on 20 products with no mismatches.
Do the filters and sorts really apply?▾
Yes, and only the ones Dafiti applies are offered. Measured on tenis on 2026-09-23: 34,678 results unfiltered, 857 for Nike, 9,763 for the colour Preto, 14,135 in size 40, 4,615 sold by Dafiti itself, 9,783 with free shipping, 6,743 between 100 and 200 BRL, and combining Nike with Preto gives 219 and adding size 40 gives 104. Five sorts are offered - relevance, price_asc, price_desc, discount and newest - and each returns a different first row and a different price ladder. Dafiti also accepts a popularity order and then ignores it, returning the identical 20 products in the identical positions as the default, so that one is deliberately not offered here. Every search response also carries a facets block listing the brands, colours, sizes and sellers this particular query accepts, spelled the way the filter wants them, so you never have to guess.
What happens if my keyword matches nothing?▾
You get an empty result with no_match: true, not a page of unrelated products. This matters because Dafiti answers a keyword that matches nothing with a normal-looking page of 48 products it picked for you, and reports a result total for them. A search for a nonsense string returns zero rows here, and a real search is never mistaken for one.
Which countries can I query?▾
Brazil (br, BRL) and Colombia (co, COP). Those are the two storefronts that still trade. Dafiti is often listed as a four-country marketplace, but as of 2026-09-23 dafiti.com.ar serves a fashion blog with no catalogue and dafiti.cl serves a page announcing the Chilean store's closure, so country=ar and country=cl are rejected with that explanation. The two live storefronts publish different fields and the difference is documented in the table above rather than hidden behind an average.
Does the API tell me when Dafiti is not the seller?▾
Yes. Every Brazilian row carries sold_by_dafiti as a boolean, and product and availability return the seller Dafiti's own page credits for the item, such as adidas or Olympikus. Where an item is listed by an individual trader rather than a company, that person's registered personal name is withheld - Dafiti does not show it on the product page either - and you still get sold_by_dafiti: false so you know it is not first-party stock.
What does Dafiti NOT publish?▾
No review texts, only an average and a count, and only in Brazil. No seller ratings and no seller ids. No price or stock history. No size-level stock, no size names, no colour and no seller on search rows in Colombia, and no result total or last page there either. Sponsored placements are not hidden: they are returned as normal rows flagged sponsored, 13 of 58 on one tenis search, so you can drop them yourself if a ranking study needs to.
What is the Dafiti API?▾
Dafiti API is a ReefAPI endpoint group for latin america's biggest fashion marketplace: size-by-size availability, brand, colour, the discount against the list price and the marketplace seller. It returns live JSON through POST requests under /dafiti/v1.
Is the Dafiti API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Dafiti calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Dafiti login or account?▾
No login to Dafiti 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 Dafiti 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 Dafiti API use?▾
Dafiti 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 Dafiti from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call dafiti actions with the same key, credit pool and JSON envelope used by normal REST requests.
116 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Dafiti, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 279 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-23.