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

# Scopes

> Pick the v2 API scopes your integration needs.

# Scopes

Scopes define what a developer application can read or change. Start narrow, test the integration, and add write scopes only when needed.

<Info>
  Endpoint pages in the API reference show exact scope requirements for each operation.
</Info>

## Scope groups

<Tabs>
  <Tab title="Catalog" icon="boxes">
    <Columns cols={2}>
      <Card title="products.read" icon="eye" horizontal>
        Read products, variations, and catalog metadata.
      </Card>

      <Card title="products.write" icon="pencil" horizontal>
        Create, update, and archive products and variations.
      </Card>

      <Card title="categories.read" icon="folder-open" horizontal>
        Read categories and category trees.
      </Card>

      <Card title="categories.write" icon="folder-pen" horizontal>
        Create, update, and archive categories.
      </Card>

      <Card title="vendors.read" icon="building-2" horizontal>
        Read vendor profile data.
      </Card>

      <Card title="vendors.write" icon="contact-round" horizontal>
        Create, update, and deactivate vendor profiles.
      </Card>
    </Columns>
  </Tab>

  <Tab title="Locations" icon="map-pin">
    <Card title="locations.read" icon="map" type="check">
      Read tenant locations for valid `location_id` binding.
    </Card>
  </Tab>

  <Tab title="Usage" icon="chart-no-axes-combined">
    <Card title="usage.read" icon="activity" type="note">
      Read API usage totals for monitoring and reporting.
    </Card>
  </Tab>
</Tabs>

## Starter bundles

<Columns cols={3}>
  <Card title="Read catalog" icon="book-open">
    `products.read categories.read vendors.read locations.read`
  </Card>

  <Card title="Manage catalog" icon="square-pen">
    `products.read products.write categories.read categories.write vendors.read vendors.write locations.read`
  </Card>

  <Card title="Monitor usage" icon="activity">
    `usage.read`
  </Card>
</Columns>

## Scope table

| Scope              | Access                                               |
| ------------------ | ---------------------------------------------------- |
| `products.read`    | Read products and variations.                        |
| `products.write`   | Create, update, and archive products and variations. |
| `categories.read`  | Read categories and category trees.                  |
| `categories.write` | Create, update, and archive categories.              |
| `vendors.read`     | Read vendor profiles.                                |
| `vendors.write`    | Create, update, and deactivate vendor profiles.      |
| `locations.read`   | Read tenant locations for `location_id` binding.     |
| `usage.read`       | Read API usage totals.                               |

## Choosing scopes

<Steps titleSize="h3">
  <Step title="Start with read access" icon="eye">
    Use read scopes during initial development so the first requests cannot change tenant data.
  </Step>

  <Step title="Add write access per workflow" icon="pencil">
    Add `products.write`, `categories.write`, or `vendors.write` only after the integration is ready to create, update, archive, or deactivate those records.
  </Step>

  <Step title="Separate systems when access differs" icon="git-branch">
    Use separate developer applications when two systems need different scope bundles or rotation schedules.
  </Step>
</Steps>

<Tip>
  Keep separate applications for separate jobs when different systems need different permissions.
</Tip>
