traktorpool API

Germany's farm-machinery market, with net and gross prices kept apart

The traktorpool API turns traktorpool.de, a German marketplace for agricultural machinery, into JSON in two actions.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a traktorpool endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
T
/traktorpool/v1

2 active endpoints. Every call is 3 credits.

  • POST/traktorpool/v1/search
  • POST/traktorpool/v1/detail

What traktorpool endpoints does ReefAPI ship?

2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

2 endpoints

search

3 cr

Search or browse the marketplace by keyword, machine group/type, manufacturer, model, seller,…

required
—
optional
query, category_id, subcategory_id, manufacturer_id, model, seller_id, seller_type, condition, year_min, year_max, price_min, price_max, operating_hours_min, operating_hours_max, power_kw_min, power_kw_max, country, zip_code, radius_km, listed_within_days, with_images, with_videos, sort, page, page_size

detail

3 cr

One listing in full by its listing number.

required
listing_id
optional
—

Every parameter, every allowed value →

traktorpool API

2 of 2 endpoints, ready to run

View docs ↗

Search about 150,000 listings by keyword, group, manufacturer, year, net price, hours, power, condition or country, with the source's exact match count.

3 credits0 required · 5 optional
POST/traktorpool/v1/search
idle
// 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 traktorpool API works

traktorpool is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 491 engines.

02
Call
POST /traktorpool/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
3 credit per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Build a comparable set for one tractor model

Two calls. The first narrows to one manufacturer's tractors, the second reads the rows you keep in full.

01search?manufacturer_id=159&category_id=24&subcategory_id=95&year_min=2015&operating_hours_max=5000&condition=used&page_size=100
POSTsearch?manufacturer_id=159&category_id=24&subcategory_id=95&year_min=2015&operating_hours_max=5000&condition=used&page_size=100

Used Fendt tractors built 2015 or later with at most 5,000 hours, 100 rows a page. total is the source's exact count (929 of 2,894 on the day we measured). Drop rows with is_top_offer if you want the organic order only.

02detail?listing_id=<listing_id from any row>
POSTdetail?listing_id=<listing_id from any row>

The row in full: price_net, price_gross and vat_rate, the technical table as the seller filled it in, the extras, the photos and the dealer's business block.

A comparable set with year, hour meter, power and a net price on one basis, and the dealer behind every machine.

request
curl -X POST https://api.reefapi.com/traktorpool/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"manufacturer_id":159,"category_id":24}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "traktorpool",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

One listing, three prices on the same page

Listing 8977177, a 2021 machine with 640 operating hours, read on 2026-10-14. The page states its price three times, at three different precisions. This is what each one says and what the API returns.

where on the pagevaluewhat the API does with it
structured product data94,957.98 EURprice_net = 94957.98 (the exact figure)
analytics payload94,957 (cut to a whole number)used only to check the other two
printed headline94.958 € zzgl. 19% MwSt.price_printed, vat_rate = 19
printed gross113,000 EURprice_gross = 113000

The three readings differ by less than one euro, so price_mismatch stays false; a gap above one euro would set it. Read from three different countries, every value above was identical.

What the source publishes, measured

Measured on 2026-10-14 against the live site, 120 search rows from four categories and 5 listings checked field by field.

Catalogue

150,857 listings in the unfiltered result count; machine groups from tractors to parts.

Prices

Net price, gross price and VAT rate as separate fields; 40 of 40 cross-checks against the page's own structured data and analytics agreed.

Depth

15 pages per query (375 rows, or 1,500 at page_size 100); deeper pages are refused by the source.

Filters

Keyword, group, type, manufacturer, model, seller, seller type, condition, year, net price, hours, power, country, postal code + radius, listing age, photos, video. 0 rows outside the filter in 432 checked.

Hours and power

Need a machine type (subcategory_id): without one the source ignores them, so the API refuses the call instead of returning an unfiltered list.

Hour meter and power

Present where the machine has them: 21 of 30 Fendt tractor rows carried hours, 0 of 30 tillage rows.

Freshness

The source caches its pages for up to two hours; meta.source_cache_age_s says how old each page is.

What people build with traktorpool

The jobs this data is most often used for.

2

endpoints

3

credits per call

01

Price a used tractor: one manufacturer, machine type 95, a year window and an hour-meter ceiling give the live comparable set, with net price, power and hours side by side.

02

Compare dealer offers on a like-for-like basis: price_net is always net of VAT and vat_rate tells you which country's VAT a dealer adds, so German and Dutch offers can be compared without guessing.

03

Monitor new stock: sort by newest and poll one manufacturer or machine group; badges carry the source's own "Neues Inserat" marker.

04

Map a dealer's inventory: seller_id from any row lists that dealer's stock, and detail returns the dealer's business name, address, verification badge, member-since date and live listing count.

What traktorpool data costs

The cheapest call here is 3 credits, so $15/mo (Pro) buys 3,333 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 491 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
curl -X POST https://api.reefapi.com/traktorpool/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"manufacturer_id":159,"category_id":24}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/traktorpool/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "manufacturer_id": 159,
  "category_id": 24
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up traktorpool.

Get a free key →
Is the price with or without VAT?▾

Both, in separate fields. traktorpool prints dealer prices net of VAT by default (for example "30.000 € zzgl. 19% MwSt."), so price_net is the net figure, price_gross is the gross figure the listing page prints, and vat_rate is the rate the seller applies. The rate depends on the seller's country: 19 % for German dealers and 21 % for Dutch and Belgian dealers appeared on the same page. Some listings state no VAT at all; then vat_rate is null and the page shows one price.

How many listings can one query return?▾

Up to 15 pages, so 375 rows at the default page size or 1,500 at page_size 100. Deeper pages are refused by the source (pages 20, 50 and 202 were refused every time we asked), so the API rejects a page above 15 instead of failing slowly. Narrow with a manufacturer, a machine group or a keyword to stay inside that window: Fendt alone is 5,035 listings, Fendt tractors 3,409.

Why does a 25-row page return 30 listings?▾

Because the source places paid top offers in the grid. On the default sort a 25-row page carried 5 of them. They are real listings, so they are returned, flagged with is_top_offer, and counted in meta.top_offers. A price-sorted page returned none in our sample, and a 100-row page carried 2.

What does a listing without a price mean?▾

Two different things, and the API keeps them apart. An auction lot shows the word "Auktion" instead of a price: is_auction is true and price_label carries the word. A listing with no price and no auction label has price_on_request true. Across 120 search rows from four categories, between 25 and 28 rows in every 30 carried a price.

Why did a filtered search return fewer rows than the page showed?▾

When you filter on hours or power, the source lists the real matches and then appends listings that do not state that value at all, under a note saying they might still fit. Those are not matches, so they are removed and counted in meta.padding_rows_dropped. Measured: harvester headers with at most 10 hours had 2 real matches and 100 appended listings.

Which filters are supported?▾

Keyword, machine group and machine type, manufacturer, model, seller, dealer or private seller, condition, year of construction, net price, hour meter, engine power, seller country, postal code with a radius, listing age, with photos and with video, plus six sort orders and three page sizes. Every one was measured against an unfiltered control in the same run, twice, and 432 returned rows were checked against the filter they were asked for with no row outside it. Examples from 5,035 Fendt listings: 984 built 2015-2020, 587 priced 10,000-50,000 EUR net, 697 new, 565 in the Netherlands; from 2,894 Fendt tractors: 738 with at most 2,000 hours and 986 with 150-250 kW.

How fresh is the data?▾

As fresh as the source's own pages. The site serves its pages through a cache for up to two hours, and every response carries meta.source_cache_age_s with the age of the page you received, in seconds (we saw between 143 and 596).

How fast is it?▾

Over two back-to-back runs of the final code, every one of the 26 searches and 2 detail calls succeeded; search had a median of 3.3 s with the slowest three at 11.7, 12.0 and 23.8 s, detail a median of 2.4 s. A search page is about 810 KB at the source and a detail page about 440 KB.

What is the traktorpool API?▾

traktorpool API is a ReefAPI endpoint group for germany's farm-machinery marketplace as json: about 150,000 tractors, combines, balers, tillage and parts listings with the net price, the gross price and the seller's vat rate kept apart, plus year, hour meter, engine power and the dealer behind each one. It returns live JSON through POST requests under /traktorpool/v1.

Is the traktorpool API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. traktorpool calls use the same shared credit balance as every other ReefAPI engine.

Do I need a traktorpool login or account?▾

No login to traktorpool 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 traktorpool 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 traktorpool API use?▾

traktorpool actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call traktorpool from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call traktorpool actions with the same key, credit pool and JSON envelope used by normal REST requests.

107 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling traktorpool, 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.

0/4000

No account needed · we reply from [email protected]

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 490 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-10-14.