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.
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
Full implementation of STAC API v1.0.0 specification for interoperability with geospatial tools and catalogs.
Query sites using bounding boxes or GeoJSON geometries for precise geographic filtering.
Access detailed site information including emissions data, production metrics, and corporate ownership.
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 |
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 |
STAC Conformance
This API implements the following STAC conformance classes:
https://api.stacspec.org/v1.0.0/core- Core STAC APIhttps://api.stacspec.org/v1.0.0/collections- Collections supporthttps://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": [...]
}
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"
}