API documentation

Add your ISP’s coverage map to a website with an iframe, or use the same published boundaries in your own map.

1. Publish your coverage

  1. Sign in to your ISP’s SkyBase account. Open Sites → select a site → Manage coverage.
  2. Create an area, draw its boundary, and review its name and availability. Choose Publish. The public map uses the last published revision, including while you work on a newer draft.
  3. As the tenant owner, open Sites → Website coverage map → Enable public sharing. This exposes all published coverage for your tenant. Review area names before enabling it.
  4. Open Website installation guide there to get this page with your tenant’s URLs filled in. If you opened this guide from the homepage, replace YOUR-TENANT-SLUG in the examples with your tenant slug.

2. Embed the interactive map

Paste this into the HTML of your coverage page. In WordPress use a Custom HTML block. Preview the page, click a boundary to see its name and availability, then publish your website.

<iframe src="https://skybase.app/api/v1/public/YOUR-TENANT-SLUG/coverage/map"
  title="Internet service coverage" width="100%" height="480"
  loading="lazy" style="border:0"></iframe>

The map fits your published boundaries automatically. Future edits appear on the next page load after you publish them. Archiving removes an area. Disable public sharing to turn off both the map and feed.

3. Use coverage in your own application

Send a public GET request. No key, cookies or login are required. Browser requests from other origins are supported. Test the URL in a browser or terminal first.

curl --fail 'https://skybase.app/api/v1/public/YOUR-TENANT-SLUG/coverage'

A successful response is a GeoJSON FeatureCollection. Each feature has a stable area ID and a Polygon or MultiPolygon with longitude first, latitude second. Keep interior rings when drawing exclusions.

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature", "id": 12,
    "geometry": {"type":"Polygon","coordinates":[[[51,35],[52,35],[52,36],[51,35]]]},
    "properties": {"name":"North service area","technology":"wireless",
      "availability":"survey_required","evidence":"estimated"}
  }]
}

Technology is wireless, fiber or other. Availability is available, survey_required, constrained or unavailable. Evidence is declared, estimated or verified, with an optional verified_on date. A boundary indicates mapped coverage. Installation may still require a survey.

For an existing Leaflet map named map, run this JavaScript after initializing the map. Use the iframe above for a complete map without writing JavaScript.

async function showCoverage(map) {
  const response = await fetch('https://skybase.app/api/v1/public/YOUR-TENANT-SLUG/coverage', {credentials: 'omit'});
  if (!response.ok) throw new Error('Coverage unavailable (' + response.status + ')');
  const areas = L.geoJSON(await response.json()).addTo(map);
  if (areas.getBounds().isValid()) map.fitBounds(areas.getBounds());
}
showCoverage(map).catch(console.error);

Troubleshooting

404 — Check the slug, account status and public sharing setting.

200 with an empty features array — Publish at least one coverage area. Drafts and archived areas are excluded.

429 — Wait before retrying. The public routes are limited to 120 requests per minute per client IP. Fetch once when opening the page.

Preview works but the embedded map is missing — Check that your website builder allows iframe HTML and that your site’s frame-src policy allows the SkyBase host.

Using the older Avinox CRM deployment? Its authentication, customer, subscription, services and lead endpoints are documented in the legacy API reference.