drio
Technical ReviewAPI Reference

Auth

OAuth flows and app auth connection management.

GET
/api/v1/apps/{appId}/auth

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Path Parameters

appId*string

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://mcp.getdrio.com/api/v1/apps/string/auth"
{
  "auth": [
    {
      "id": "auth_123",
      "appId": "app_123",
      "providerId": "provider_oauth",
      "providerKey": "custom-oauth",
      "providerName": "OAuth",
      "key": "primary-auth",
      "name": "Primary Auth",
      "status": "valid",
      "config": {
        "type": "oauth",
        "authorizationEndpoint": "https://accounts.example.com/oauth/authorize",
        "tokenEndpoint": "https://accounts.example.com/oauth/token",
        "clientId": "client_123",
        "scopes": [
          "contacts:read"
        ]
      },
      "secretRef": null,
      "grants": [
        "contacts:read"
      ],
      "lastValidatedAt": "2026-03-15T12:00:00.000Z",
      "lastError": null
    }
  ],
  "providers": [
    {
      "id": "provider_oauth",
      "key": "custom-oauth",
      "name": "OAuth",
      "kind": "oauth",
      "ownership": "customer_managed",
      "provisioningMode": "manual",
      "docsUrl": "https://docs.example.com/oauth",
      "configSchema": {
        "scopes": [
          "contacts:read"
        ],
        "requiresAuthorizationEndpoint": true,
        "requiresTokenEndpoint": true
      }
    }
  ]
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
POST
/api/v1/apps/{appId}/auth

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Path Parameters

appId*string

Request Body

application/json

Auth connection payload

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://mcp.getdrio.com/api/v1/apps/string/auth" \  -H "Content-Type: application/json" \  -d '{    "providerKey": "custom-oauth",    "name": "Primary Auth",    "status": "valid",    "config": {      "type": "oauth",      "authorizationEndpoint": "https://accounts.example.com/oauth/authorize",      "tokenEndpoint": "https://accounts.example.com/oauth/token",      "clientId": "client_123",      "scopes": [        "contacts:read"      ]    },    "grants": [      "contacts:read"    ]  }'
{
  "auth": {
    "id": "auth_123",
    "appId": "app_123",
    "providerId": "provider_oauth",
    "providerKey": "custom-oauth",
    "providerName": "OAuth",
    "key": "primary-auth",
    "name": "Primary Auth",
    "status": "valid",
    "config": {
      "type": "oauth",
      "authorizationEndpoint": "https://accounts.example.com/oauth/authorize",
      "tokenEndpoint": "https://accounts.example.com/oauth/token",
      "clientId": "client_123",
      "scopes": [
        "contacts:read"
      ]
    },
    "secretRef": null,
    "grants": [
      "contacts:read"
    ],
    "lastValidatedAt": "2026-03-15T12:00:00.000Z",
    "lastError": null
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
GET
/api/v1/apps/{appId}/auth/{authId}

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Path Parameters

appId*string
authId*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://mcp.getdrio.com/api/v1/apps/string/auth/string"
{
  "auth": {
    "id": "string",
    "appId": "string",
    "providerId": "string",
    "providerKey": "string",
    "providerName": "string",
    "key": "string",
    "name": "string",
    "status": "draft",
    "config": {
      "type": "oauth",
      "authorizationEndpoint": "string",
      "tokenEndpoint": "string",
      "registrationEndpoint": "string",
      "registrationAuthMode": "none",
      "registrationInitialAccessToken": "string",
      "registrationAccessToken": "string",
      "registrationClientUri": "string",
      "lastRegisteredAt": "string",
      "clientId": "string",
      "clientSecret": "string",
      "headerName": "string",
      "apiKey": "string",
      "queryParamName": "string",
      "headerPrefix": "string",
      "accessToken": "string",
      "username": "string",
      "password": "string",
      "scopes": [
        "string"
      ],
      "audience": "string",
      "enabled": true,
      "isDefault": true
    },
    "secretRef": "string",
    "grants": [
      "string"
    ],
    "lastValidatedAt": "string",
    "lastError": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
PATCH
/api/v1/apps/{appId}/auth/{authId}

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Path Parameters

appId*string
authId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://mcp.getdrio.com/api/v1/apps/string/auth/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "auth": {
    "id": "string",
    "appId": "string",
    "providerId": "string",
    "providerKey": "string",
    "providerName": "string",
    "key": "string",
    "name": "string",
    "status": "draft",
    "config": {
      "type": "oauth",
      "authorizationEndpoint": "string",
      "tokenEndpoint": "string",
      "registrationEndpoint": "string",
      "registrationAuthMode": "none",
      "registrationInitialAccessToken": "string",
      "registrationAccessToken": "string",
      "registrationClientUri": "string",
      "lastRegisteredAt": "string",
      "clientId": "string",
      "clientSecret": "string",
      "headerName": "string",
      "apiKey": "string",
      "queryParamName": "string",
      "headerPrefix": "string",
      "accessToken": "string",
      "username": "string",
      "password": "string",
      "scopes": [
        "string"
      ],
      "audience": "string",
      "enabled": true,
      "isDefault": true
    },
    "secretRef": "string",
    "grants": [
      "string"
    ],
    "lastValidatedAt": "string",
    "lastError": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
DELETE
/api/v1/apps/{appId}/auth/{authId}

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Path Parameters

appId*string
authId*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://mcp.getdrio.com/api/v1/apps/string/auth/string"
{
  "deleted": true
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6"
  }
}
POST
/api/v1/auth/register

Request Body

application/json

Dynamic client registration payload

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://mcp.getdrio.com/api/v1/auth/register" \  -H "Content-Type: application/json" \  -d '{    "client_name": "ChatGPT",    "grant_types": [      "authorization_code",      "refresh_token"    ],    "redirect_uris": [      "https://chat.openai.com/aip/oauth/callback"    ],    "response_types": [      "code"    ]  }'
{
  "client_id": "client_123",
  "client_name": "ChatGPT",
  "grant_types": [
    "authorization_code",
    "refresh_token"
  ],
  "redirect_uris": [
    "https://chat.openai.com/aip/oauth/callback"
  ],
  "response_types": [
    "code"
  ],
  "token_endpoint_auth_method": "none"
}
{
  "error": "invalid_client_metadata",
  "error_description": "redirect_uris is required"
}
GET
/api/v1/auth/authorize

Query Parameters

client_id*string
redirect_uri*string
Formaturi
response_type?string
code_challenge?string
code_challenge_method?string
state?string

Response Body

curl -X GET "https://mcp.getdrio.com/api/v1/auth/authorize?client_id=string&redirect_uri=http%3A%2F%2Fexample.com"
Empty
POST
/api/v1/auth/token

Authorization code or refresh token exchange payload

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://mcp.getdrio.com/api/v1/auth/token" \  -H "Content-Type: application/json" \  -d '{    "client_id": "client_123",    "code": "auth_code_123",    "code_verifier": "verifier_123",    "grant_type": "authorization_code",    "redirect_uri": "https://chat.openai.com/aip/oauth/callback"  }'
{
  "access_token": "access_token_123",
  "refresh_token": "refresh_token_123",
  "expires_in": 3600,
  "token_type": "Bearer"
}
{
  "error": "invalid_request",
  "error_description": "Missing required fields: client_id, code, code_verifier"
}
POST
/api/v1/auth/refresh

Refresh token exchange payload

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://mcp.getdrio.com/api/v1/auth/refresh" \  -H "Content-Type: application/json" \  -d '{    "client_id": "client_123",    "refresh_token": "refresh_token_123",    "redirect_uri": "https://chat.openai.com/aip/oauth/callback"  }'
{
  "access_token": "access_token_123",
  "refresh_token": "refresh_token_456",
  "expires_in": 3600,
  "token_type": "Bearer"
}
{
  "error": "invalid_request",
  "error_description": "Missing required field: refresh_token"
}
GET
/api/v1/me

Authorization

oauth openid, profile, email
AuthorizationBearer <token>

In: header

Scope: openid, profile, email

Response Body

application/json

application/json

curl -X GET "https://mcp.getdrio.com/api/v1/me"
{
  "user": {
    "workosUserId": "user_123",
    "email": "nicolai@getdrio.com",
    "image": "https://images.getdrio.com/avatar.png",
    "name": "Nicolai",
    "scopes": [
      "openid",
      "profile",
      "email"
    ]
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Missing or invalid Bearer access token",
    "details": null,
    "requestId": "4c9b58ff-69a7-4ccf-840d-a0f1ec9f9d77"
  }
}