linkspect API docs linkspect.com

Test keys and fixtures

A test key (lsk_test_…) runs checks on a fixture engine instead of real connections. Results are predictable, marked test: true and never charged. Use it to write and test your integration, including how you handle blocks and failures.

Fixture host names

The outcome depends only on the host name of the URL:

Host nameEvery cohort gets
blocked-dns.fixtures.linkspect.comblocked, layer: "dns", method: "redirect"
blocked-sni.fixtures.linkspect.comblocked, layer: "tls_sni", method: "reset"
target-down.fixtures.linkspect.comtarget_down
proxy-failure.fixtures.linkspect.comproxy_failure with reason: "exit_changed", all measurements excluded
any other host nameok

Paths and query strings do not matter, so https://blocked-sni.fixtures.linkspect.com/checkout?step=2 gives the same result as the bare host. Each measurement in a fixture result has details at GET /v1/measurements/{id}, like a real one.

How long fixture checks take

ProfileTime per cohortFinishes within Prefer: wait=30?
quick2 secondsyes
standard10 secondsyes
deep40 secondsno: you get 202 and poll

A deep fixture check is the easy way to test the 202 path and polling (see Waiting and polling).

Rules that still apply

The fixture engine skips the measuring, not the rules in front of it:

Live keys

Fixture host names never give fixture results with a live key (lsk_live_…). Cohorts that cannot be measured get not_measured and are not charged; a preview (POST /v1/checks:preview) shows them as not_measurable in advance.