Developer Docs
API Documentation
Reference for the Sky Lane Network ping-post API. Live credentials are issued to approved partners after onboarding — this reference describes the interface you'll integrate against.
Overview
The Sky Lane Network API follows the standard ping-post pattern used across the lead exchange industry. Sellers ping a subset of lead fields to check buyer interest and pricing, then deliver the full post to the buyer that accepted the ping. Buyers configure campaigns with acceptance criteria and receive pings and posts against those campaigns in real time.
Base URL https://api.skylanenetwork.com/v1 Content type application/json
Authentication
All requests require a bearer token issued to your account. Sandbox keys are prefixed sk_test_, live keys are prefixed sk_live_. Keys are scoped to either buyer or seller access.
Authorization: Bearer sk_live_51H8x...
Rate limits
Default limits are 120 requests/minute per key for ping/post endpoints and 30 requests/minute for read endpoints. Limits scale with campaign volume — contact your account manager to raise them. Rate-limited responses return 429 with a Retry-After header.
/leads/ping
Submitted by sellers to check buyer interest and pricing for a lead before delivering the full record. Only qualifying fields are required — never full PII — at the ping stage.
Request
{
"vertical": "personal_loan",
"state": "OH",
"credit_band": "600-679",
"income_monthly": 3200,
"loan_amount_requested": 4000,
"source_url": "https://example-affiliate.com/quote",
"consent": {
"tcpa": true,
"language_version": "v3",
"captured_at": "2026-08-11T14:02:31Z",
"ip_address": "203.0.113.42"
}
}
Response — 200 OK
{
"ping_id": "pg_9f3d2a",
"accepted": true,
"bid": 18.50,
"currency": "USD",
"buyer_ref": "cmp_442",
"expires_in": 120,
"post_url": "/v1/leads/pg_9f3d2a/post"
}
/leads/:ping_id/post
Delivers the full lead record to the buyer that accepted the ping. Must be called within the expires_in window returned by the ping response.
Request
{
"first_name": "Alex",
"last_name": "Morgan",
"email": "alex.morgan@example.com",
"phone": "+16145550134",
"address": {
"line1": "142 Maple St",
"city": "Columbus",
"state": "OH",
"zip": "43215"
},
"employment_status": "employed_full_time"
}
Response — 201 Created
{
"lead_id": "ld_7c21ff",
"status": "delivered",
"price": 18.50,
"delivered_at": "2026-08-11T14:03:04Z"
}
/leads/:lead_id
Returns delivery status, acceptance state, and return history for a previously posted lead.
{
"lead_id": "ld_7c21ff",
"status": "accepted",
"returned": false,
"return_reason": null
}
/campaigns
Lists active campaigns visible to your account, including vertical, geo, and price-band filters. Buyers use this to confirm live filter configuration; sellers use it to preview which of their pings are likely to be accepted.
{
"campaigns": [
{
"campaign_id": "cmp_442",
"vertical": "personal_loan",
"states": ["OH", "IN", "KY"],
"status": "active"
}
]
}
Webhooks
Configure a webhook URL in your partner dashboard to receive asynchronous status updates. Payloads are signed with an X-SLN-Signature HMAC header.
| Event | Fires when |
|---|---|
| lead.accepted | A posted lead is accepted by the buyer |
| lead.rejected | A ping or post is declined |
| lead.returned | A buyer disputes and returns a delivered lead |
| campaign.updated | A campaign's filters, floor, or status changes |
Field dictionary
Common fields shared across verticals. Each vertical adds its own qualifying fields on top of this base set — the full dictionary per vertical is shared during onboarding.
| Field | Type | Stage | Notes |
|---|---|---|---|
| vertical | string | ping | Vertical slug, see Verticals page |
| state | string | ping | Two-letter USPS code |
| consent.tcpa | boolean | ping | Must be true; required on every lead |
| consent.captured_at | ISO 8601 | ping | Timestamp consent was collected at source |
| source_url | string | ping | Page where the consumer opted in |
| first_name / last_name | string | post | Full PII — post stage only |
| email / phone | string | post | Full PII — post stage only |
Errors
| Code | Meaning |
|---|---|
| 400 | Malformed request or missing required field |
| 401 | Missing or invalid bearer token |
| 403 | Key not scoped for this vertical or action |
| 409 | Duplicate lead within suppression window |
| 422 | Consent missing or ping/post window expired |
| 429 | Rate limit exceeded |
Getting credentials
API access is provisioned once a partner agreement is in place. Reach out with your traffic sources or buying criteria and we'll issue sandbox credentials alongside your onboarding call.
Request API access