Skip to main content
The Surface API gives you programmatic access to Surface’s cross-exchange matching system. Look up any Kalshi contract ticker or Polymarket contract ID and get the full cluster — every contract in the same cross-exchange group, their resolution rules, and the relationships between them. Every match passes through a multi-stage validation pipeline. Team, date, line, and side alignment are all checked before a result is accepted. If a candidate doesn’t clear the bar, it’s rejected rather than returned.

Base URL

Authentication

All requests require an API key in the X-API-Key header.
Create an account and generate a key at surfaceapi.com/portal.

Rate limits

The free tier allows 25 new unique cluster lookups per day. Repeat lookups are always free. Looking up any contract ID within a cluster you’ve already accessed never counts against your quota. 404s are also free. If no match is found for a contract, that request does not consume a quota slot. Quota resets at midnight UTC each day. Two response headers are present on every request:

Errors

All errors use the same envelope:
On a 429, three additional fields are included: