AI Toolkit
Modulesapi

api

HTTP client with retry, error wrapping, and rate limit detection

Overview

The api module provides a configurable HTTP client with automatic retries on 5xx errors, rate limit detection, and consistent error wrapping.

No peer dependencies required.

Quick Start

import { createApiClient } from '@jamaalbuilds/ai-toolkit/api';

const client = createApiClient({
  baseUrl: 'https://api.example.com',
  headers: { Authorization: `Bearer ${token}` },
});

const data = await client.get('/users');

API Reference

createApiClient(config)

Create an HTTP client with retry and error handling.

function createApiClient(config: ApiClientConfig): ApiClient
ParameterTypeDescription
config.baseUrlstringBase URL for all requests
config.headersRecord<string, string>Default headers
config.apiKeystringAPI key for authentication
config.timeoutnumberRequest timeout in ms
config.maxRetriesnumberMax retry attempts (default: 2)
const client = createApiClient({
  baseUrl: 'https://api.example.com',
  maxRetries: 3,
  timeout: 5000,
});

const response = await client.post('/endpoint', { key: 'value' });

Types

  • ApiClient — client with get(), post(), put(), patch(), delete() methods
  • ApiClientConfig — baseUrl, apiKey, timeout, maxRetries, headers
On this page

On this page