Skip to main content
The Lasso API is built on REST principles. All requests use HTTPS and return JSON responses. Use Lasso to search for products, enrich partial data into complete records, extract structured data from files, and enhance it with AI — all through a single API.

Base URL

All requests contain the following base URL:
https://hub.banditshq.com/api/v1

Quick examples

The fastest way to use Lasso — no setup required:
curl -X POST "https://hub.banditshq.com/api/v1/search" \
  -H "Authorization: Bearer lasso_..." \
  -H "Content-Type: application/json" \
  -d '{ "query": "Sony wireless earbuds under $200" }'

Authentication

To authenticate you need to add an Authorization header with the contents of the header being Bearer lasso_xxxxxxxxx where lasso_xxxxxxxxx is your API Key.
Authorization: Bearer lasso_xxxxxxxxx
API keys are scoped to a single company. All resources accessed through a key belong to that company. See the Authentication page for more details on key management and security best practices.

SDKs

Official SDKs are available for TypeScript and Python.
npm install @lasso-ai/sdk
import LassoClient from "@lasso-ai/sdk";

const client = new LassoClient({ apiKey: "lasso_..." });

// Search
const results = await client.search({ query: "wireless earbuds" });

// Enrich
const enriched = await client.enrich({
  items: [{ data: { name: "Sony WF-1000XM5" } }],
});

Response codes

Lasso uses standard HTTP codes to indicate the success or failure of your requests.
StatusTypeDescription
200SuccessSuccessful request.
201CreatedResource successfully created.
202AcceptedAsync job queued (search, enrich, enhance).
204No ContentSuccessful deletion.
400invalid_requestThe request is malformed or uses an unsupported HTTP method.
401unauthenticatedMissing, invalid, or deactivated API key.
402insufficient_creditsYour account does not have enough credits.
403forbiddenThe API key does not have permission for this action.
404not_foundThe resource does not exist or does not belong to your company.
409conflictThe request conflicts with the current state of the resource.
422validation_errorMissing required fields or invalid values.
429rate_limitedToo many requests. Back off and retry.
500internal_errorAn unexpected error on the server.
See Errors for the full error response format.

Pagination

List endpoints support page-based pagination with page and limit query parameters. The default page size is 25 and the maximum is 100.
{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 25,
    "total": 143
  }
}
See Pagination for details and iteration examples.

Webhooks

Configure a webhook_url on search, enrich, or table creation to receive HTTP POST notifications when processing completes. Webhook payloads are signed with HMAC-SHA256 and retried up to 3 times with exponential backoff. See Webhooks for delivery format, signature verification, and retry policy.