Alberta Open Data API
alberta.ca · Government
Open data API for Alberta provincial datasets at open.alberta.ca. Covers energy production, agricultural data, environmental monitoring, health statistics, transportation infrastructure, and public land administration. Alberta is Canada's energy province — datasets on oil and gas well licenses, pipeline routes, land use, and energy production are particularly valuable. Uses CKAN-compatible API and ArcGIS REST services.
Authentication
Sample Requests
Searches Alberta's open data catalog. Returns datasets with metadata and resource download URLs.
Hover any highlighted part to learn what it does
curl -X GET "https://open.alberta.ca/api/3/action/package_search?q=wildfire&rows=10"
import requests
params = {
"q": "wildfire",
"rows": "10"
}
response = requests.get(
"https://open.alberta.ca/api/3/action/package_search",
params=params,
)
print(response.json())const url = new URL('https://open.alberta.ca/api/3/action/package_search');
url.searchParams.set('q', 'wildfire');
url.searchParams.set('rows', '10');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://open.alberta.ca/api/3/action/package_search")
q := baseURL.Query()
q.Set("q", "wildfire")
q.Set("rows", "10")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://open.alberta.ca/api/3/action/package_search")
uri.query = URI.encode_www_form({
"q" => "wildfire",
"rows" => "10"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://open.alberta.ca/api/3/action/package_search?" . http_build_query([
"q" => "wildfire",
"rows" => "10"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Retrieves a specific Alberta dataset by ID. Key for oil and gas well and pipeline data relevant to energy sector underwriting.
Hover any highlighted part to learn what it does
curl -X GET "https://open.alberta.ca/api/3/action/package_show?id=wells-drilled-report"
import requests
params = {
"id": "wells-drilled-report"
}
response = requests.get(
"https://open.alberta.ca/api/3/action/package_show",
params=params,
)
print(response.json())const url = new URL('https://open.alberta.ca/api/3/action/package_show');
url.searchParams.set('id', 'wells-drilled-report');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://open.alberta.ca/api/3/action/package_show")
q := baseURL.Query()
q.Set("id", "wells-drilled-report")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://open.alberta.ca/api/3/action/package_show")
uri.query = URI.encode_www_form({
"id" => "wells-drilled-report"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://open.alberta.ca/api/3/action/package_show?" . http_build_query([
"id" => "wells-drilled-report"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- No API key — Alberta Open Data is fully open, standard CKAN interface
- Base URL: https://open.alberta.ca/api/3/action/
- Alberta Energy Regulator (AER) has separate APIs for well and pipeline data at aer.ca
- AER Data Download: https://www.aer.ca/providing-information/data-and-reports
- Alberta wildfire perimeter data available through AFS (Alberta Forest Service) feeds
- Geospatial datasets also available via Alberta Climate Information Service (ACIS)
- Many Alberta energy datasets updated daily — check metadata_modified field for freshness
What can you build with Alberta Open Data API?
Alberta Open Data API is a Government API. Developers commonly use government APIs for:
- surfacing public datasets in citizen-facing apps
- building transparency and civic engagement tools
- accessing legislation, court records, and official data
- powering research and journalism tools
- creating compliance and regulatory monitoring dashboards
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Alberta Open Data API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?