> For the complete documentation index, see [llms.txt](https://api-docs.urbanpiper.com/upstream/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.urbanpiper.com/upstream/introduction.md).

# Introduction

This documentation serves as a reference guide for integrating with UrbanPiper's upstream system. Our APIs follow REST (Representational State Transfer) principles and outline the endpoints that aggregator backend systems are expected to consume.

**Before You Begin**

Please keep the following in mind when working with this documentation:

* For any questions or clarifications, reach out to <product@urbanpiper.com>. If you have a shared Slack Connect channel with us, feel free to use that instead.
* We do our best to keep this documentation in sync with our development cycles; however, there may occasionally be gaps. If you notice anything missing or outdated, please don't hesitate to let us know.
* Required request parameters are indicated — omitting them will cause the request to fail. That said, optional parameters should not be overlooked, as they may affect the behavior of the response.
* During the testing phase, upstream partners should use the **sandbox environment** to validate functionality.
* All API requests must be made over **HTTPS**.
* In the event of an error, a maximum of **3 retry attempts** are permitted per API request.
* Any third-party system consuming webhook data must respond within the defined **timeout constraints** outlined below.

{% hint style="info" %}
Below mentioned are the connection and read timeouts for the webhook requests in our system

**Connection Timeout - 3 seconds**.\
**Read Timeout - 7 seconds**.
{% endhint %}
