POST /v1/tokens

Service: identity · operationId: (none)

OAuth 2 client credentials grant — mints M2M tokens

Required scopes

(no scope declared — review service config)

Responses

200 Token issued

{
  "type": "object",
  "properties": {
    "access_token": {
      "type": "string",
      "description": "Signed JWT"
    },
    "token_type": {
      "type": "string",
      "enum": [
        "Bearer"
      ]
    },
    "expires_in": {
      "type": "integer",
      "description": "Token lifetime in seconds"
    },
    "scope": {
      "type": "string",
      "description": "Space-separated granted scopes"
    }
  },
  "required": [
    "access_token",
    "token_type",
    "expires_in",
    "scope"
  ]
}

400 Invalid request (bad grant_type, missing fields)

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "description": "OAuth 2 error code"
    },
    "error_description": {
      "type": "string",
      "description": "Human-readable error message"
    }
  },
  "required": [
    "error",
    "error_description"
  ]
}

401 Invalid client credentials

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "description": "OAuth 2 error code"
    },
    "error_description": {
      "type": "string",
      "description": "Human-readable error message"
    }
  },
  "required": [
    "error",
    "error_description"
  ]
}

403 Scope or audience not allowed for this client

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "description": "OAuth 2 error code"
    },
    "error_description": {
      "type": "string",
      "description": "Human-readable error message"
    }
  },
  "required": [
    "error",
    "error_description"
  ]
}

Example

curl -X POST https://identity.platform.loop.health/v1/tokens \
  -H "Authorization: Bearer $ACCESS_TOKEN"