# Build with AI

Point Claude, ChatGPT, Cursor and similar tools at the OLET API with two URLs and a starter prompt.

Source: https://getolet.com/resources/developers/build-with-ai/
Updated: 2026-10-15

Give any AI coding tool two URLs and it can read the whole OLET API: the OpenAPI spec, and every doc as plain markdown.

## What URLs do I give the tool

- `https://getolet.com/resources/developers/openapi.json`, the full OpenAPI spec: every operation, every field, every error code.
- `https://getolet.com/llms-full.txt`, every published doc concatenated as markdown, including this one.

Paste one or both into a chat, or point a tool's "add documentation" or "add context" feature at them.

The API also serves the same spec itself, with no credential needed, at `https://api.oletapp.com/your-store/v1/openapi.json`. Use this one to import into Postman or a code generator, because its server URL already carries your store prefix. The bare base URL is not importable.

## Can I read a single page as markdown

Yes. Every docs page has a markdown twin at the same path with the trailing slash dropped and `.md` added, and a Copy as Markdown button on the page itself. Both give you the same plain-text content a browser tab would otherwise wrap in HTML.

## A starter prompt to paste

```
I'm building against the OLET API. Base URL: https://api.oletapp.com/{domain_prefix}/v1
(domain_prefix is my store's prefix, e.g. your-store). Auth: "Authorization: Bearer
{api_key}" header. Read the api_key from an environment variable, never hardcode it
in code you write for me. Money fields are integers in cents, never decimals. List
endpoints page with cursor/limit/next_cursor/has_more. Stock adjustment and stock batch
endpoints need an Idempotency-Key header. Every error is JSON: {"error": {"code", "message",
"fields"}}; branch on code, not on message text. Full spec:
https://getolet.com/resources/developers/openapi.json
```

## What about Custom GPT Actions and tool calling

Import `https://getolet.com/resources/developers/openapi.json` directly when configuring an Action or a tool definition. It is the same spec the interactive reference and the code snippets on this site are built from, so nothing about it is trimmed for humans.

## A safety note

Create a key scoped to only what the tool needs. A tool that only reads your catalog should get `catalog:read`, not `catalog:write` or `customers:read`. Revoke the key from Integrations > API & apps when you are done experimenting.

## Where to go next

Start with the [quickstart](/resources/developers/quickstart/), or go straight to [authentication](/resources/developers/authentication/) for the full scope table.
