Bulk and commercial units
One call returns up to 100 matches and costs 10 units. Here is the exact pricing and the partial-result contract.
One call, up to 100 matches
A bulk body contains 1 to 100 unique match IDs. A request for 101 is rejected — it is never silently truncated.
{"match_ids": ["fsm:v1:0123…", "fsm:v1:89ab…"]}
What it costs
Bulk is priced by blocks of 10 matches, so a full call of 100 matches costs only 10 units instead of 100.
units = ceil(max(requested_matches, returned_matches) / 10)
| Matches requested | Units charged |
|---|---|
| 1 to 10 | 1 |
| 50 | 5 |
| 100 | 10 |
Cached 304 | 1 unit, 0 rows |
With 500 units per hour, bulk gives you up to about 5 000 match rows per hour in theory, depending on how you compose the calls, and up to 10 000 rows per day. These are capacity ceilings, not a throughput promise.
Partial results
Bulk is partial by design: available authorized matches appear in results; missing or
unauthorized ones appear in errors with match_not_found. This uniform code
prevents competition-access leakage. Never discard errors.