QAirbon STAC API

A STAC-compliant API for accessing industrial sites monitoring data, including emissions tracking, production metrics, and geographic information for steel and copper facilities worldwide.

STAC 1.0.0 REST API GeoJSON

Quick Start

Get started with the QAirbon API in minutes. Exchange your QAirbon username and password for an access token, then send that token on every request. No client secret is needed — see the Authentication guide for Python and JavaScript versions, the token response and how to refresh it.

# Step 1: Get a token from Keycloak
curl --location 'https://keycloak.qairbon.com/realms/QairbonAPIDev/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'client_id=auth' \
--data-urlencode 'username={{USER_NAME}}' \
--data-urlencode 'password={{PASSWORD}}'

# Step 2: Send the access_token from that response on every request
curl -H "Authorization: Bearer $TOKEN" \
     https://${API_HOST}/api/${API_VERSION}/collections/sites/items

Features

STAC Compliant

Full implementation of STAC API v1.0.0 specification for interoperability with geospatial tools and catalogs.

Spatial Search

Query sites using bounding boxes or GeoJSON geometries for precise geographic filtering.

Rich Metadata

Access detailed site information including emissions data, production metrics, and corporate ownership.

User-Based Access

Fine-grained access control ensures users only see sites they're authorized to view.

Base URL

All API requests should be made to:

https://${API_HOST}/api/v1

Authentication

The API uses JWT (JSON Web Token) authentication via Keycloak OIDC. Obtain an access token from Keycloak, then include it in the Authorization header:

Step Action Description
1. Get Token POST https://keycloak.qairbon.com/realms/QairbonAPIDev/protocol/openid-connect/token Exchange your username and password for a JWT access token. No client secret is needed.
2. Use Token Authorization: Bearer TOKEN Include access token in header for protected endpoints
3. Refresh POST https://keycloak.qairbon.com/realms/QairbonAPIDev/protocol/openid-connect/token Get a new access token when the hour is up, using grant_type=refresh_token
i
Public Endpoints: The following endpoints don't require authentication:
STAC API: /api/${API_VERSION}/docs, /api/${API_VERSION}/redoc, /api/${API_VERSION}/openapi.json
Authentication: Token endpoint at https://keycloak.qairbon.com/realms/QairbonAPIDev/protocol/openid-connect/token

Learn more about authentication →

API Endpoints

The API provides the following endpoints:

Method Endpoint Description
GET /api/v1/stac STAC Catalog landing page
GET /api/v1/collections List all collections
GET /api/v1/collections/sites Get sites collection metadata
GET /api/v1/collections/sites/items List all site items
GET /api/v1/collections/sites/items/{id} Get a single site by ID
GET /api/v1/collections/sites/items/{id}/sai/items List SAI items for a site
GET /api/v1/collections/sites/items/{id}/production/items List monthly production estimates (kt) for a site
GET /api/v1/collections/sites/items/{id}/plume/items List CO₂ plume items for a site
GET /api/v1/collections/sites/items/{id}/plume/items/{plume_id}/assets/raster Get color-mapped plume concentration raster (GeoTIFF)
GET /api/v1/collections/panel/items List all panels
GET /api/v1/collections/panel/items/{id}/qai/items List QAI items for a panel
GET /api/v1/collections/panel/items/{id}/production/items List monthly production estimates (kt) for a panel
GET /api/v1/collections/alerts/items List alert events (restart / shutdown)
GET /api/v1/collections/sites/items/{id}/alerts/items List alert events for a site's blast furnaces
GET /api/v1/collections/news/items List press articles mentioning monitored sites
GET /api/v1/collections/sites/items/{id}/news/items List press articles for a site
POST /api/v1/search Search sites with spatial filters

View full API reference →

STAC Conformance

This API implements the following STAC conformance classes:

  • https://api.stacspec.org/v1.0.0/core - Core STAC API
  • https://api.stacspec.org/v1.0.0/collections - Collections support
  • https://api.stacspec.org/v1.0.0/item-search - Item search support

Response Format

All responses are returned in JSON format following the GeoJSON and STAC specifications. Site items are returned as GeoJSON Features with STAC-compliant metadata.

{
  "type": "Feature",
  "stac_version": "1.0.0",
  "id": "9d8b3de5-322f-45a3-9666-df4c25d6ae34",
  "collection": "sites",
  "geometry": {
    "type": "Point",
    "coordinates": [127.74865, 34.920086]
  },
  "properties": {
    "datetime": "2020-01-01T00:00:00Z",
    "title": "POSCO Gwangyang steel plant",
    "qairbon:industry": "steel_bf",
    "qairbon:status": "operating",
    "qairbon:country": "South Korea"
  },
  "links": [...]
}

View all data models →

Error Handling

The API uses standard HTTP status codes and returns error details in JSON format:

Status Code Description
200 Success
400 Bad Request - Invalid parameters or UUID format
401 Unauthorized - Missing authentication headers
404 Not Found - Resource doesn't exist
500 Internal Server Error
// Error response example
{
  "detail": "Site not found"
}