> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://support.uplisting.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# API Partner Integration

# **API Partner Integration**

## **Before you start**
If you have an Uplisting account and only need to read data, your API key is already there. Go to [**Connect > API.**](https://app.uplisting.io/connect/api) Webhooks are registered with the same key.
You need to request credentials from us if you are:
* Using the V3 OAuth API, which is our recommended route for new integrations
* Creating bookings or using custom booking attributes on the API key route, which needs a client ID from us
* Offering your integration to other Uplisting customers, which needs a partner agreement
All requests go through one form: [**__Here__**](https://docs.google.com/forms/d/e/1FAIpQLScU_dEV5KWM57YsjzUwbBxl9jnawt7GjP3HmTPWRz41CZz5Qg/viewform)

## **Which route should I use?**
**V3 OAuth API.** 
Recommended for all new integrations. Uses OAuth with granular scopes for read and write access, and supports connecting to multiple Uplisting accounts. Includes reviews, guest messaging, quotes and custom booking attributes. We issue the client ID and secret.

**API key.** 
Basic authentication with a single key, generated in your own Uplisting account. Covers reading properties, bookings, availability and calendar, updating the calendar, and webhooks. Nothing to request for those. Creating bookings and using custom booking attributes need a client ID from us as well, which you can request via the form. Suitable if you are building for a single account.
There is no immediate requirement to migrate from the API key to V3.

## **V3 OAuth API**
### **Documentation**
[__https://documenter.getpostman.com/view/6655410/2sBY4HSNpH__](https://documenter.getpostman.com/view/6655410/2sBY4HSNpH)

### **Requesting credentials**
Complete the form and we will provision your OAuth client: [**__Form__**](https://docs.google.com/forms/d/e/1FAIpQLScU_dEV5KWM57YsjzUwbBxl9jnawt7GjP3HmTPWRz41CZz5Qg/viewform)
We will ask for your company name, technical contact email, the Uplisting account the integration connects to, the scopes you need, your redirect URIs, and a short description of what you are building.

### **Redirect URIs**
Redirect URIs must be direct HTTPS callback URLs, for example:
https://app.example.com/oauth/uplisting/callback
We cannot accept homepage URLs, plain HTTP, localhost, 127.0.0.1, wildcards, or links wrapped by Gmail or Outlook. The authorize request must use the redirect URI exactly as registered.

### **Scopes**
Scopes are granted per resource and split by read and write access. Request offline\_access in the browser authorize step if you need refresh tokens. Access tokens expire after one hour.
Full details are in the [**V3 OAuth FAQ**](https://support.uplisting.io/en/article/uplisting-v3-oauth-api-faq-1groqwy/)

### **Sandbox**
Sandbox and production credentials are separate. If you need both, request both on the form at the same time. Create a staging account first and give us the account email.

## **API key**
### **Documentation**
[__https://documenter.getpostman.com/view/1320372/SWTBfdW6#intro__](https://documenter.getpostman.com/view/1320372/SWTBfdW6#intro)
### **Getting your key**
Your API key is in your Uplisting account under [**Connect > API**](https://app.uplisting.io/connect/api)**.** 
### **Client ID**
Four endpoints on this route need a client ID from us as well as your API key:
* Create a booking
* List custom booking attributes
* Create custom booking attributes
* Update booking attributes

These sit under /v2/ and take your client ID in an X-Uplisting-Client-Id header alongside the usual Basic authentication.
Request a client ID on the form: [**__Here__**](https://docs.google.com/forms/d/e/1FAIpQLScU_dEV5KWM57YsjzUwbBxl9jnawt7GjP3HmTPWRz41CZz5Qg/viewform)

If you are asking for custom booking attributes, tell us the prefix you want at the same time. It should be lowercase letters, numbers and underscores, for example abchq. Attribute names must be snake\_case and start with your prefix.

If you are using V3 OAuth, you do not need a client ID. Creating bookings and custom booking attributes are both covered by scopes there.

## **Webhooks**
Webhooks are registered with your account API key using Basic authentication, including for V3 OAuth integrations. There is nothing to request.
Full documentation, including event types, signature verification and retry behaviour, is in the Postman collection.

## **Partner agreement**
A partner agreement is only needed if you are offering your integration to other Uplisting customers. A private integration on your own account does not need one.
If that applies to you, request a copy on the form: [**__Here__**](https://docs.google.com/forms/d/e/1FAIpQLScU_dEV5KWM57YsjzUwbBxl9jnawt7GjP3HmTPWRz41CZz5Qg/viewform)

## **Support**
For technical questions, check the documentation first:
* [V1 FAQ](https://support.uplisting.io/en/article/api-webhooks-vzlowi/)
* [V3 OAuth FAQ](https://support.uplisting.io/en/article/uplisting-v3-oauth-api-faq-1groqwy/)

If your answer is not there, send us your question on the form: [**__Here__**](https://docs.google.com/forms/d/e/1FAIpQLScU_dEV5KWM57YsjzUwbBxl9jnawt7GjP3HmTPWRz41CZz5Qg/viewform)
