Basker Docs

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.

On this page