Find an API

Search public APIs with auth details & Postman guides

← All APIs

Alberta Open Data API

alberta.ca · Government

Government No Auth Free & Open Government Open Data Government Energy

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

No authentication requiredFree to use with no key needed.

Sample Requests

GET Search Alberta datasets

Searches Alberta's open data catalog. Returns datasets with metadata and resource download URLs.

https://open.alberta.ca/api/3/action/package_search?q=wildfire&rows=10

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));
GET Get oil and gas data

Retrieves a specific Alberta dataset by ID. Key for oil and gas well and pipeline data relevant to energy sector underwriting.

https://open.alberta.ca/api/3/action/package_show?id=wells-drilled-report

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

Get Postman ↗
  1. No API key — Alberta Open Data is fully open, standard CKAN interface
  2. Base URL: https://open.alberta.ca/api/3/action/
  3. Alberta Energy Regulator (AER) has separate APIs for well and pipeline data at aer.ca
  4. AER Data Download: https://www.aer.ca/providing-information/data-and-reports
  5. Alberta wildfire perimeter data available through AFS (Alberta Forest Service) feeds
  6. Geospatial datasets also available via Alberta Climate Information Service (ACIS)
  7. 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?

Open documentation ↗