Client libraries
Use cURL, fetch, axios, or another HTTP client with the Partners API
The Partners API uses ordinary HTTP and JSON. There is no required Basker SDK, so you can use your language's HTTP client or generate a client from OpenAPI.
cURL
cURL is the canonical example syntax used throughout this section.
curl -s \
-H "Authorization: users API-Key YOUR_API_KEY" \
-H "x-basker-tenant-slug: remarkable-theatre" \
"https://api.basker.app/partners/2026-02/remarkable-theatre/events?limit=10"Node.js (fetch)
Native fetch is available in Node.js 18 and above. No dependencies required.
const response = await fetch(
"https://api.basker.app/partners/2026-02/remarkable-theatre/events?limit=10",
{
headers: {
Authorization: "users API-Key YOUR_API_KEY",
"x-basker-tenant-slug": "remarkable-theatre",
},
}
);
if (!response.ok) {
throw new Error(`Request failed: ${response.status} ${response.statusText}`);
}
const data = await response.json();
console.log(data);Node.js (axios)
import axios from "axios";
const client = axios.create({
baseURL: "https://api.basker.app/partners/2026-02/remarkable-theatre",
headers: {
Authorization: "users API-Key YOUR_API_KEY",
"x-basker-tenant-slug": "remarkable-theatre",
},
});
const { data } = await client.get("/events", { params: { limit: 10 } });Python (requests)
import requests
response = requests.get(
"https://api.basker.app/partners/2026-02/remarkable-theatre/events",
headers={
"Authorization": "users API-Key YOUR_API_KEY",
"x-basker-tenant-slug": "remarkable-theatre",
},
params={"limit": 10},
)
response.raise_for_status()
data = response.json()Ruby (Net::HTTP)
require "net/http"
require "json"
uri = URI("https://api.basker.app/partners/2026-02/remarkable-theatre/events?limit=10")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "users API-Key YOUR_API_KEY"
request["x-basker-tenant-slug"] = "remarkable-theatre"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
raise "Request failed: #{response.code}" unless response.is_a?(Net::HTTPSuccess)
data = JSON.parse(response.body)OpenAPI-generated clients
The Partners API publishes an OpenAPI specification. Use an OpenAPI generator such as openapi-generator-cli, openapi-typescript, or oapi-codegen to scaffold a typed client. Use the version-specific specification so the generated types match the version pinned in your request URLs.
This is the recommended path for larger integrations because:
- The generated client mirrors the documented request and response types.
- Re-running the generator against a new API version produces the new types automatically.
- Most generators support multiple languages from the same spec.
Tips for any client
- Set a User-Agent that identifies your integration, for example
MyApp/1.0 (contact@example.com). - Implement retries with exponential backoff plus jitter. See Rate limits.
- Use field selection (Field selection) to keep responses small.
- Cache collection definitions and other rarely-changing data on your side.
Related
- Quickstart: your first authenticated request.
- Authentication: header shape.
- Versioning: pin a known-stable version.