> ## Documentation Index
> Fetch the complete documentation index at: https://api.nektir.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first Nektir API request and safely interpret the result.

The pilot API is read-only and does not require credentials. Use the versioned `/v1` base path.

<Note>
  These docs are hosted at `https://api.nektir.com`, but that domain does not yet proxy the API runtime. Local development uses `http://127.0.0.1:5185/v1`; replace it with the published API base URL when the backend is deployed.
</Note>

## Search for products

```bash theme={"dark"}
curl "http://127.0.0.1:5185/v1/products?q=bartenura&limit=10" \
  -H "Accept: application/json"
```

```javascript theme={"dark"}
const baseUrl = 'http://127.0.0.1:5185/v1';
const response = await fetch(`${baseUrl}/products?q=bartenura&limit=10`, {
  headers: { Accept: 'application/json' }
});

if (!response.ok) {
  throw await response.json();
}

const { data, meta, links } = await response.json();
```

## Build brand filters

Read `brands` from `/v1/meta`, then pass one or more stable IDs with `brand_ids`. Reviewed brand IDs and slugs are stable; unresolved products return `brand`, `brand_id`, and `brand_slug` as `null`.

```bash theme={"dark"}
curl "http://127.0.0.1:5185/v1/meta"
curl "http://127.0.0.1:5185/v1/products?brand_ids=0f0c284e-25bc-4d55-90b8-0d2ef9bda111"
```

The optional `dabs_new_item` and `dabs_on_spa` filters accept only `true` or `false`. These are unverified source flags; do not label `onSpa` as a sale or promotion.

## Display store details

Store list responses expose `regular_hours_available` without repeating a full weekly schedule on every row. Store detail embeds `regular_hours` when the directory schedule normalized safely, plus neutral `tel:` and `geo:` links. Treat the schedule as regular weekly hours: `exceptions_known` is `false`, so holidays and temporary closures may differ.

## Resolve an exact SKU

```bash theme={"dark"}
curl "http://127.0.0.1:5185/v1/products/by-sku/347210"
```

SKUs are exactly six characters. Preserve leading zeroes and never coerce them to numbers.

## Before showing availability

1. Read `meta.coverage.status` and `meta.warnings`.
2. Display the relevant `retrieved_at` value or range.
3. Keep `source_updated_at` unknown when the source did not provide it.
4. Treat reported quantity separately from `purchase_eligibility`.
5. Do not interpret an empty result as no stock when coverage is partial or absent.
