---
title: "Exchange an app listing OAuth callback"
method: POST
path: "/app-listings/callback/"
tags: ["app-listings"]
---

# Exchange an app listing OAuth callback

`POST /app-listings/callback/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/app-listings/callback/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Validate the OAuth callback and return a pending-connection id.

## Request body

- AppListingCallbackRequestSchema: The OAuth callback parameters posted by the frontend callback page.
  - `code` string, required
  - `params` object: Extra provider callback query parameters forwarded by the callback page, used to auto-detect the data center where the vendor returns it (e.g. Zoho `location`).
  - `state` string, required

## Response `200`

Successful Response

- AppListingCallbackResponseSchema: A pending-connection id. The user finalizes it by calling the create endpoint (``POST /integration/{type}/``) with this ``connection_id``. The OAuth-connect flow shares the regular create/preview endpoints.
  - `connection_id` string, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: App listing not found
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
