> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pilotstatus.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate to Pilot Status Without Rewriting Your Code

> Switch to Pilot Status from Evolution API (Evolution GO or Evolution V2) by changing a single base URL. No code changes required with the API Layer.

If you're already running WhatsApp automation on Evolution API — whether Evolution GO or Evolution V2 — you can move to Pilot Status without touching a single line of application code. The Pilot Status **API Layer** is a compatibility layer that accepts requests in the exact format your existing integration already sends, translates them internally, and routes them through the Pilot Status infrastructure. Your request bodies, response shapes, webhook payloads, and authentication headers all stay the same. The only thing that changes is the hostname in your base URL.

## What is the API Layer

The API Layer sits in front of the Pilot Status platform and speaks the same HTTP dialect as the WhatsApp providers your team already knows. When your application sends a request to the API Layer endpoint, Pilot Status parses it using the provider-specific schema, executes the operation on its managed infrastructure, and returns a response in the format your code expects.

This means you get all the benefits of Pilot Status — managed proxies, no self-hosted servers, official Meta integrations, automatic scaling, and uptime SLAs — without a migration sprint, a rewrite, or a QA cycle to validate new request shapes.

## How to migrate

<Steps>
  ### Note your current base URL

  Find the base URL your application currently uses to reach your Evolution API server. It will look something like:

  ```bash theme={null}
  https://your-evolution-server.com
  ```

  This might be in an environment variable (`EVOLUTION_API_URL`, `WHATSAPP_BASE_URL`, or similar), a configuration file, or an n8n / automation-tool credential.

  ### Replace it with the Pilot Status API Layer URL

  Swap the base URL for the Pilot Status API Layer endpoint that matches your provider:

  | Provider     | New base URL                                         |
  | ------------ | ---------------------------------------------------- |
  | Evolution GO | `https://pilotstatus.com.br/api/layer/evolution-go/` |
  | Evolution V2 | `https://pilotstatus.com.br/api/layer/evolution-v2/` |

  Your existing API calls map directly to the new URL with the same path and method:

  ```bash Evolution GO — before theme={null}
  POST https://your-server.com/message/sendText/instance1
  ```

  ```bash Pilot Status Layer — after theme={null}
  POST https://pilotstatus.com.br/api/layer/evolution-go/message/sendText/instance1
  ```

  ```bash Evolution V2 — before theme={null}
  POST https://your-server.com/message/sendText/instance1
  ```

  ```bash Pilot Status Layer — after theme={null}
  POST https://pilotstatus.com.br/api/layer/evolution-v2/message/sendText/instance1
  ```

  ### That's it

  Restart your application (or update the environment variable) and verify that messages flow through as expected. No other code changes are required.
</Steps>

## Supported providers

<CardGroup cols={2}>
  <Card title="Evolution GO" icon="bolt">
    **Endpoint:** `/api/layer/evolution-go/`

    Drop-in compatibility for applications built on the Evolution GO API. All message-send, instance-management, and webhook paths are supported.
  </Card>

  <Card title="Evolution V2" icon="code">
    **Endpoint:** `/api/layer/evolution-v2/`

    Drop-in compatibility for applications built on Evolution API v2. Supports the full v2 message, group, and event API surface.
  </Card>
</CardGroup>

## What stays the same

When you migrate via the API Layer, the following remain completely unchanged in your application:

* **Request body format** — JSON payloads you send today work without modification.
* **Response format** — field names, types, and structure are identical to what you already parse.
* **Webhook payload format** — event names and payload schemas match your existing handlers.
* **Authentication headers** — continue using the same header name and format your provider requires (Pilot Status maps it internally).
* **Paths and methods** — every endpoint path and HTTP method you currently call is supported at the same relative path under the new base URL.

## What changes

| What                      | Before                                | After                                              |
| ------------------------- | ------------------------------------- | -------------------------------------------------- |
| **Base URL**              | Your self-hosted server               | `https://pilotstatus.com.br/api/layer/{provider}/` |
| **Billing**               | Your server / VPS costs               | Pilot Status subscription                          |
| **Infrastructure**        | Self-managed server, proxies, updates | Fully managed by Pilot Status                      |
| **Uptime responsibility** | Yours                                 | Pilot Status SLA                                   |

<Note>
  The API Layer is available on all paid Pilot Status plans. You can test your migration on the free plan with your first connected number before committing to a subscription.
</Note>

For the full API Layer reference — including supported endpoints, error handling, and instance mapping — see the [API Layer overview](/api/layer/overview).
