# Set Up a Multi-Customer Development Environment

`intent: multi-customer`

Use this setup when your app accesses impact.com data on behalf of users.

### Meet the prerequisite

You need a supported runtime, package manager, editor, and impact.com account.

* Runtime: Python 3.8+, Node.js 18+, or PHP 8.1+
* Package manager: `pip`, `npm`, or Composer
* Editor: Visual Studio Code
* impact.com account: Use it to request OAuth 2.0 credentials

### Get your OAuth 2.0 credential

Request your `client_id` and `client_secret`, then register your redirect URI.

Store sensitive values in your secret store or local environment.

* [Set Up OAuth 2.0](/rest-apis/wip-not-used-yet/authenticate/set-up-oauth-2.0.md)

### Set environment variables

```bash
export IMPACT_CLIENT_ID="your-client-id"
export IMPACT_CLIENT_SECRET="your-client-secret"
export IMPACT_REDIRECT_URI="https://your-app.example.com/callback"
```

### Install an SDK

{% tabs %}
{% tab title="Python" %}

```bash
pip install impact
```

{% endtab %}

{% tab title="Node.js" %}

```bash
npm install @impact/sdk
```

{% endtab %}

{% tab title="PHP" %}

```bash
composer require impact/sdk
```

{% endtab %}
{% endtabs %}

### Explore next step

* [Build a Multi-Customer App](/rest-apis/wip-not-used-yet/build-a-multi-customer-app.md)
* [Set Up OAuth 2.0](/rest-apis/wip-not-used-yet/authenticate/set-up-oauth-2.0.md)
* [Sandbox](/developer-tools/sandbox.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integrations.impact.com/rest-apis/wip-not-used-yet/development-environment/set-up-a-multi-customer-development-environment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
