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

# Reactivate ad-server source

> Re-enable a previously deactivated ad-server-backed inventory source

`POST /api/v2/storefront/inventory-sources/{sourceId}/reactivate`

Re-enables a previously deactivated ad-server source and returns the connection with `deactivatedAt` cleared.

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.interchange.io/api/v2/storefront/inventory-sources/retail-gam/reactivate \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Field      | Type          | Required | Notes                                 |
| ---------- | ------------- | -------- | ------------------------------------- |
| `sourceId` | string (path) | Yes      | Storefront-scoped inventory source ID |

## Response

`200 OK` with the `EsaConnection`, now re-enabled (`deactivatedAt` is `null`):

```json theme={null}
{
  "id": "550199",
  "customerId": 4210,
  "tenantId": "tnt_acme_gam",
  "mcpUrl": "/mcp/",
  "a2aUrl": "/a2a",
  "adServer": { "type": "google_ad_manager", "networkCode": "12345678" },
  "serviceAccountEmail": "sa-4210@scope3-storefront.iam.gserviceaccount.com",
  "lastError": null,
  "lastErrorCode": null,
  "lastTestedAt": "2026-05-01T08:00:00Z",
  "provisionedAt": "2026-04-25T12:10:00Z",
  "deactivatedAt": null,
  "createdAt": "2026-04-25T12:05:00Z",
  "updatedAt": "2026-05-02T10:05:00Z",
  "inventorySync": null
}
```

<Note>
  If the upstream managed source is gone, reactivation fails with `400 VALIDATION_ERROR` (reason `TENANT_NOT_FOUND`) and you must create a fresh connection instead via [Replace ad-server config](/v2/storefront/inventory-sources/tasks/replace-ad-server-config).
</Note>

## Errors

* `400 VALIDATION_ERROR` — upstream managed source is gone (`TENANT_NOT_FOUND`); provision a fresh connection.
* `401 UNAUTHORIZED` — missing or invalid API key.
* `404 NOT_FOUND` — no ad-server-backed source with this `sourceId`.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Inventory source tasks" href="/v2/storefront/inventory-sources/tasks" icon="list-check">
    All operations
  </Card>

  <Card title="Deactivate" href="/v2/storefront/inventory-sources/tasks/deactivate" icon="ban">
    Soft-delete this source
  </Card>

  <Card title="Test connection" href="/v2/storefront/inventory-sources/tasks/test-connection" icon="plug-circle-check">
    Verify after reactivating
  </Card>

  <Card title="Get ad-server connection" href="/v2/storefront/inventory-sources/tasks/get-ad-server-connection" icon="server">
    Connection state
  </Card>
</CardGroup>
