# SDK

The SDK routes are the only routes an SDK key can call: `GET /v1/sdk/validate`, `GET /v1/links/resolve/{slug}`, `POST /v1/attribution/match`, and `POST /v1/referrals/claims`. Each is limited to 60 requests per minute per key per client IP. See [Attribution](https://warplink.app/docs/api/attribution) for the match route and [Referrals](https://warplink.app/docs/api/referrals) for the claim route.

## Validate SDK Key

GET /sdk/validate: Validate an SDK key

An SDK key tied to one app validates the same way as an untied key. Only the SDK endpoints accept an SDK key, tied or not: this one, link resolution and attribution matching. Every other endpoint answers it with `403 SDK_KEY_ROUTE_FORBIDDEN`.

Link resolution follows the old URLs of moved links. Resolving an old address on a renamed app's old subdomain returns the moved link, with its current domain and slug. While an app's rename period is open, `domains` in the validation response lists the old subdomain as well as the new one, so a build that still declares the old host keeps working.
