SDKs
Current SDK status and recommended client patterns.
Status
Official SDK packages are not yet published.
For now, use direct HTTP clients with small internal wrappers so you can migrate to official SDKs later without refactoring your app logic.
JavaScript / TypeScript Pattern
type CountriesResponse = {
data: Array<{ id: string; name: string; region: string }>;
meta: { total: number; page: number; per_page: number; total_pages: number };
};
export async function listCountries(): Promise<CountriesResponse> {
const response = await fetch("https://api.africa-api.com/v1/countries", {
headers: {
Authorization: `Bearer ${process.env.AFRICA_API_KEY ?? ""}`,
},
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
return response.json();
}Python Pattern
import requests
BASE_URL = "https://api.africa-api.com"
def list_countries(api_key: str | None = None) -> dict:
headers = {}
if api_key:
headers["Authorization"] = f"Bearer {api_key}"
response = requests.get(f"{BASE_URL}/v1/countries", headers=headers, timeout=10)
response.raise_for_status()
return response.json()Generate Clients from OpenAPI
If you prefer generated clients, use the OpenAPI schema:
https://api.africa-api.com/openapi.jsonPin generated clients to a specific API version path (/v1) for stability.