# Quick start (https://prood.com/docs/getting-started/quick-start)

Three steps to your first API call on a hosted Prood store. Nothing to install.

## 1. Create a store [#1-create-a-store]

[Register on the dashboard](https://prood.com/dashboard/register). Every plan includes a prood.app address and an API key for the public storefront API.

## 2. Make an API key [#2-make-an-api-key]

In the dashboard, open **API keys** under **Connections** and create a key:

- Give it a name.
- Choose its scopes. **Storefront**: browse products, fill a cart and place an order. Payment runs on hosted checkout, started from the store. **Admin**: reads and changes catalog, inventory, orders and store settings, and reads customers. Payment accounts, domains, team and keys stay in the dashboard. Starts on Grow.

The key belongs to your organization and is shown once, so copy it now. Keys start with `pk`, followed straight away by random letters and numbers, with no underscore: `pkAbC123...`.

## 3. Call the API [#3-call-the-api]

Put the key in your shell, then send it in the `x-api-key` header:

```bash
export PROOD_API_KEY=pkAbC123...

# Check a key with Storefront
curl https://prood.com/v1/me \
  -H "x-api-key: $PROOD_API_KEY"
```

```json
{
  "organizationId": "org_abc123",
  "scopes": ["storefront"],
  "via": "api-key"
}
```

```bash
# List the store's products
curl https://prood.com/v1/products \
  -H "x-api-key: $PROOD_API_KEY"
```

A new store's product list is empty, so the first call returns no products until you add one in the dashboard.

Free API keys reach the public storefront API: catalog, carts and placing orders. Reading your orders and customers by API, and all admin writes, start on Grow.

## When a call fails [#when-a-call-fails]

Errors come back as JSON with a machine-readable `code` and a sentence you can show:

```json
{
  "code": "UNAUTHORIZED",
  "message": "Invalid API key. It may be mistyped, or it may have expired. Create a new one in your dashboard, under API keys."
}
```

A request that fails validation adds an `errors` list, with a `path` and `message` for each field.

## Where next [#where-next]

<Cards>
  <Card title="API reference" href="/docs/api" description="Every operation under /v1, with schemas." />
  <Card title="Machine access" href="/docs/guides/machine-access" description="API keys, Agent Auth, MCP, the TypeScript client and the CLI." />
  <Card title="MCP server" href="/docs/apps/api/mcp" description="Tools that mirror the REST API." />
  <Card title="Agent Auth" href="/docs/apps/api/agent-auth" description="Let an AI agent ask for what it needs." />
</Cards>
