curl --request GET \
--url https://api.scraperize.com/v1/lagos-life/government \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/lagos-life/government"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/lagos-life/government', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/lagos-life/government",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/lagos-life/government"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/lagos-life/government")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/lagos-life/government")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"term": {
"id": 1,
"endsAt": "2026-10-11T19:00:00.000Z"
},
"governor": {
"id": "cc2653272eec4238b3d5",
"username": "Franka",
"slogan": "Good Lagos ahead",
"votes": 9543,
"isVerified": false,
"policy": {
"id": "wages",
"label": "Minimum wage raise",
"emoji": "💼",
"effect": "Everyone earns 15% more per shift",
"since": "2026-10-09T06:38:20.471Z"
},
"announcement": null,
"announcementAt": null
},
"election": {
"term": 2,
"closesAt": "2026-10-11T19:00:00.000Z",
"candidateCount": 200,
"totalVotes": 211225,
"candidates": [
{
"rank": 1,
"id": "04c9566fcea04598a816",
"username": "quantum",
"name": "Quantum",
"slogan": "The Squad Party",
"votes": 60752,
"voteShare": 0.2876,
"isVerified": false
},
{
"rank": 2,
"id": "fab1ee0956b542e78be5",
"username": "Wealthynil",
"name": "Bhadmus Abdulbasit",
"slogan": "Let’s make Lagos all about wealth🙂↔️",
"votes": 37716,
"voteShare": 0.1786,
"isVerified": false
},
{
"rank": 3,
"id": "445d9c5bc088454d9fbc",
"username": "NestaWrld",
"name": "NestaWrld",
"slogan": "Let’s make money useful again",
"votes": 34735,
"voteShare": 0.1644,
"isVerified": false
}
]
},
"fetchedAt": "2026-10-09T16:37:07.086Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}Government
Fetches Lagos Life’s government: the current term and when it ends; the governor (username, slogan, the votes they won with, verified flag, any announcement) and the policy in force with its label, effect and when it was set; and the running election — when it closes, total votes and every candidate (username, name, slogan, votes, vote share, rank, verified flag), ranked by votes. Takes no parameters. Only publicly available data is returned.
curl --request GET \
--url https://api.scraperize.com/v1/lagos-life/government \
--header 'x-api-key: <api-key>'import requests
url = "https://api.scraperize.com/v1/lagos-life/government"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.scraperize.com/v1/lagos-life/government', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scraperize.com/v1/lagos-life/government",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scraperize.com/v1/lagos-life/government"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.scraperize.com/v1/lagos-life/government")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scraperize.com/v1/lagos-life/government")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"term": {
"id": 1,
"endsAt": "2026-10-11T19:00:00.000Z"
},
"governor": {
"id": "cc2653272eec4238b3d5",
"username": "Franka",
"slogan": "Good Lagos ahead",
"votes": 9543,
"isVerified": false,
"policy": {
"id": "wages",
"label": "Minimum wage raise",
"emoji": "💼",
"effect": "Everyone earns 15% more per shift",
"since": "2026-10-09T06:38:20.471Z"
},
"announcement": null,
"announcementAt": null
},
"election": {
"term": 2,
"closesAt": "2026-10-11T19:00:00.000Z",
"candidateCount": 200,
"totalVotes": 211225,
"candidates": [
{
"rank": 1,
"id": "04c9566fcea04598a816",
"username": "quantum",
"name": "Quantum",
"slogan": "The Squad Party",
"votes": 60752,
"voteShare": 0.2876,
"isVerified": false
},
{
"rank": 2,
"id": "fab1ee0956b542e78be5",
"username": "Wealthynil",
"name": "Bhadmus Abdulbasit",
"slogan": "Let’s make Lagos all about wealth🙂↔️",
"votes": 37716,
"voteShare": 0.1786,
"isVerified": false
},
{
"rank": 3,
"id": "445d9c5bc088454d9fbc",
"username": "NestaWrld",
"name": "NestaWrld",
"slogan": "Let’s make money useful again",
"votes": 34735,
"voteShare": 0.1644,
"isVerified": false
}
]
},
"fetchedAt": "2026-10-09T16:37:07.086Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required — pass it in the `x-api-key` header.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "This request costs 1 credit, but your balance is 0. Top up to continue.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded — max 100 requests per 60s. Retry in ~30s.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}{
"error": {
"code": "UPSTREAM_BLOCKED",
"message": "The source is temporarily unavailable. Please try again shortly.",
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f"
}
}cache_max_age) are free.Copy for AI assistant
Copy for AI assistant
I want to make an API call to /v1/lagos-life/government. Here are the details:
Endpoint: GET https://api.scraperize.com/v1/lagos-life/government
Description: Fetches Lagos Life's government: the current term and when it ends; the governor (username, slogan, the votes they won with, verified flag, any announcement) and the policy in force with its label, effect and when it was set; and the running election — when it closes, total votes and every candidate (username, name, slogan, votes, vote share, rank, verified flag), ranked by votes. Takes no parameters. Only publicly available data is returned.
Required Headers:
- x-api-key: Your API key
Parameters:
- cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
Example Response:
{
"data": {
"term": {
"id": 1,
"endsAt": "2026-10-11T19:00:00.000Z"
},
"governor": {
"id": "cc2653272eec4238b3d5",
"username": "Franka",
"slogan": "Good Lagos ahead",
"votes": 9543,
"isVerified": false,
"policy": {
"id": "wages",
"label": "Minimum wage raise",
"emoji": "💼",
"effect": "Everyone earns 15% more per shift",
"since": "2026-10-09T06:38:20.471Z"
},
"announcement": null,
"announcementAt": null
},
"election": {
"term": 2,
"closesAt": "2026-10-11T19:00:00.000Z",
"candidateCount": 200,
"totalVotes": 211225,
"candidates": [
{
"rank": 1,
"id": "04c9566fcea04598a816",
"username": "quantum",
"name": "Quantum",
"slogan": "The Squad Party",
"votes": 60752,
"voteShare": 0.2876,
"isVerified": false
}
]
},
"fetchedAt": "2026-10-09T16:37:07.086Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}
Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
Authorizations
Your API key. Send it in the x-api-key header (or Authorization: Bearer <key>). Create and manage keys from your dashboard.
Query Parameters
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.
1d, 3d, 7d, 14d, 30d