---
title: "OAuth return (state is single-use)"
method: GET
path: "/api/integrations/{provider}/callback"
tags: ["Integrations"]
---

# OAuth return (state is single-use)

`GET /api/integrations/{provider}/callback`

## Request

- Base URL: `https://whenmeet.me`
- URL: `https://whenmeet.me/api/integrations/{provider}/callback`
- Auth: none declared

## Path parameters

- `provider` 'hubspot' | 'salesforce' | 'slack', required

## Query parameters

- `code` string
- `state` string

## Other responses

- `302`: /links?connected=<provider>, or /links?integration_error=access_denied | missing_params | invalid_state | signin_required | account_mismatch | <provider>_not_configured | <provider>_failed | <provider>_blocked. access_denied is only the provider's own access_denied (the user pressed Deny). <provider>_blocked: the provider refused (Salesforce: the org has not approved the app — /links then shows how to get the admin's one-time approval, with salesforce.installUrl when set). Salesforce configuration or transient errors (invalid_client_id, redirect_uri_mismatch, server_error, …) are salesforce_failed.

---

[API](https://skmtc.dev/whenmeet/apis/whenmeet-me-api.md) · [All operations](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/revisions/202b80022215?raw)
