---
title: "Refresh an Integration OAuth token"
method: POST
path: "/v1/oauth/token"
tags: ["api"]
---

# Refresh an Integration OAuth token

`POST /v1/oauth/token`

## Request

- Base URL: `https://api.fieldguide.io`
- URL: `https://api.fieldguide.io/v1/oauth/token`
- Auth: none required

Exchanges the current rotating refresh token using a public client ID. Only refresh_token grants and the three documented form fields are accepted. This OAuth endpoint uses flat responses, not the REST data envelope. No client secret or Authorization header is accepted. Refresh credentials must never be logged or retained. Identity verifies current connection authority and the User rollout gate before releasing credentials.

## Request body `application/x-www-form-urlencoded`

- object
  - `grant_type` 'refresh_token', required
  - `client_id` string, required: Public Auth0 client ID
  - `refresh_token` string, required: Current rotating refresh token

## Response `200`

Rotated credentials

- object
  - `access_token` string, required: Access token
  - `token_type` 'Bearer', required
  - `expires_in` 900, required: Access token lifetime in seconds
  - `refresh_token` string, required: New rotating refresh token; replaces the submitted token
  - `scope` string, required: Space-delimited granted scopes

## Other responses

- `400`: Invalid request or credentials
- `429`: Too many requests
- `502`: Identity exchange failed
- `503`: Exchange temporarily unavailable

## Changes

- **2026-10-15** `2fb61061716d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fieldguide/apis/fieldguide-api/changes/v1/oauth/token/post.md)

---

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