LedeWire SDK API Reference
    Preparing search index...

    Class RateLimitError

    Thrown for any HTTP 429 Too Many Requests refusal: the caller has sent more requests than an endpoint allows in its window. content.search, for example, allows 15 searches a minute per buyer.

    LedewireError.retryAfter carries the response's Retry-After header as seconds to wait, or undefined when the response sent none (back off on your own schedule then). It is still an instanceof LedewireError with statusCode 429, so existing statusCode === 429 checks keep working.

    try {
    await client.content.search({ query: 'quantum computing' })
    } catch (err) {
    if (err instanceof RateLimitError) {
    const seconds = err.retryAfter ?? 60
    console.warn(`Rate limited — retry in ${seconds}s`)
    }
    }

    Hierarchy (View Summary)

    Index
    • Parameters

      • message: string
      • Optionalcode: number
      • Optionaltype: ErrorTypeValue
      • Optionaldetails: Record<string, unknown>
      • OptionalretryAfter: number

      Returns RateLimitError

    code: number | undefined

    Machine-readable error code from the API error body, if present.

    details: Readonly<Record<string, unknown>> | undefined

    Extra top-level fields from the API error response body, excluding error itself. For example, a selection_too_large refusal from POST /v1/acquisitions (422) carries maximum and submitted alongside error. undefined when the body carried no other top-level fields, which is the common case.

    retryAfter: number | undefined

    Seconds to wait before retrying, from the response's Retry-After header. undefined when the response carried no usable header. Present on rate-limit (429) and busy (503) refusals, so a caller can back off without guessing.

    statusCode: number

    HTTP status code returned by the API (e.g. 400, 401, 404, 422).

    type: ErrorTypeValue | undefined

    Machine-readable reason from the API error body's error.type, if present. See ErrorType for the documented values and how to branch on them — the API may emit other values it hasn't documented yet, which still land here as a plain string rather than being dropped.

    brand: string

    Class-identity brand used for cross-bundle instanceof (see [Symbol.hasInstance]). Hardcoded per class — never derived from constructor.name or this.name, either of which a minifier can rewrite, silently breaking the brand match.

    • Makes err instanceof LedewireError (and every subclass below) true even when err was constructed by a different bundled copy of this module. Each published package (@ledewire/node, @ledewire/browser, @ledewire/x402-client) bundles its own copy of @ledewire/core via tsup, so the classes are distinct objects with unrelated prototypes — the plain prototype-chain check instanceof normally does would fail.

      Falls back to the brand list every instance carries under a Symbol.for('@ledewire/error-brands') key (collected from the brand static along the constructing class's prototype chain): true when the ordinary check passes, OR the instance's brand list includes this class's own brand.

      Parameters

      • instance: unknown

      Returns boolean