---
title: "Get OAuth access token"
method: POST
path: "/api/v1/external/auth/token"
tags: ["Authentication"]
---

# Get OAuth access token

`POST /api/v1/external/auth/token`

## Request

- Base URL: `https://api.wove.com`
- URL: `https://api.wove.com/api/v1/external/auth/token`
- Auth: none required
- TypeScript: <https://skmtc.dev/wove/apis/wove-external-api/docs/api/v1/external/auth/token/post.ts> (a function with typed inputs; its response is checked against the schema)

Obtain an access token using OAuth 2.0 client credentials flow.
This token is required for all other API endpoints.

**Rate Limiting**: 100 requests per minute per IP address.

## Request body

- TokenRequest
  - `grant_type` 'client_credentials', required
  - `client_id` string, required
  - `client_secret` string, required
  - `scope` string: Space-separated list of scopes. Available scopes include shipments:read, shipments:write, customs:read, customs:write, documents:read, documents:write, documents:delete and analytics:read.

## Response `200`

Access token generated successfully

- TokenResponse
  - `access_token` string
  - `token_type` string
  - `expires_in` integer: Token lifetime in seconds
  - `scope` string

## Other responses

- `400`: Invalid request parameters
- `401`: Invalid client credentials

---

[API](https://skmtc.dev/wove/apis/wove-external-api.md) - [All operations](https://skmtc.dev/wove/apis/wove-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wove/apis/wove-external-api/revisions/37290e267e07?raw)
