CapaMatch API
Send spare machine capacity automatically from your planning or ERP system.
How to connect a planning system
Create each machine once and put the identifier from your system into external_id. After that your system only sends the free time window: from when to when, and how many hours per week. An ended listing becomes visible again when it gets a new time window.
Authentication
Create an API key in your account and send it with every request in the Authorization header. All requests use HTTPS and return JSON.
Authorization: Bearer cm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEndpoints
GET | https://capamatch.com/api/v1/machines | Read all your machines |
POST | https://capamatch.com/api/v1/machines | Create a machine; with a known external_id the listing is updated |
GET | https://capamatch.com/api/v1/machines/{id} | Read one machine |
PATCH | https://capamatch.com/api/v1/machines/{id} | Change individual fields |
PUT | https://capamatch.com/api/v1/machines/{id}/availability | Set only the free time window |
DELETE | https://capamatch.com/api/v1/machines/{id} | End the listing |
Instead of the number you can use ext: followed by your own identifier, for example /machines/ext:LATHE-07.
Fields
| Field | Type | Required | Note |
|---|---|---|---|
external_id | string | ≤ 80 | |
process | string | ✓ | turning, swiss, milling, milling5, grinding, edm, laser, punching, bending, deepdraw, waterjet, welding, injection, thermoform, printing3d |
brand | string | ✓ | ≤ 60 |
model | string | ✓ | ≤ 60 |
year | integer | 1950–2027 | |
diameter_min, diameter_max | number | ✓ | mm |
length_min, length_max | number | ✓ | mm |
tolerance_min, tolerance_max | number | ✓ | ± mm |
thickness_max | number | (✓) | mm – required for laser, punching, bending, waterjet, welding |
press_force | number | (✓) | t – required for deepdraw |
clamping_force | number | (✓) | t – required for injection |
draw_depth | number | (✓) | mm – required for thermoform |
build_height | number | (✓) | mm – required for printing3d |
materials | array | steel, stainless, aluminium, titanium, brass, copper, nickel, plastics, abs, pa, pc, pp, pe, pom, peek, ps, pet | |
part_types | array | ≤ 12 × 40 | |
certificates | array | ISO 9001, EN 9100, IATF 16949, ISO 13485 | |
description | string | ≤ 800 | |
free_from, free_to | date | ✓ | YYYY-MM-DD |
hours_per_week | integer | 1–168 | |
country | string | ✓ | ISO 3166-1 alpha-2: AT, BE, BG, BR, CA, CH, CN, CZ, DE, DK, ES, FI, FR, GB, HR, HU, IE, IN, IT, JP, KR, MX, NL, NO, PL, PT, RO, RS, SE, SI, SK, TH, TR, TW, US, VN |
region | string | ✓ | ≤ 80 |
company | string | ✓ | ≤ 120 |
Examples
Create a machine
curl -X POST https://capamatch.com/api/v1/machines \
-H "Authorization: Bearer $CAPAMATCH_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_id": "LATHE-07",
"process": "turning",
"brand": "Index",
"model": "G200",
"diameter_min": 5, "diameter_max": 65,
"length_min": 10, "length_max": 400,
"tolerance_min": 0.005, "tolerance_max": 0.05,
"materials": ["steel", "stainless"],
"certificates": ["ISO 9001"],
"free_from": "2026-10-07", "free_to": "2026-10-28",
"hours_per_week": 40,
"country": "DE", "region": "Stuttgart",
"company": "Example GmbH"
}'Update the time window
curl -X PUT https://capamatch.com/api/v1/machines/ext:LATHE-07/availability \
-H "Authorization: Bearer $CAPAMATCH_KEY" \
-H "Content-Type: application/json" \
-d '{"free_from": "2026-10-07", "free_to": "2026-10-28", "hours_per_week": 60}'Limits
120 requests per minute and 300 active machines per account. The free time window may end at most one year ahead.
Without programming
Shops without an interface upload their machines as an Excel or CSV file in their account.
Is one of your machines idle next week?
List it before the week stays empty.