---
title: "Save Integration Config"
method: PUT
path: "/v2/projects/{project_id}/integrations/{integration_id}/config"
tags: ["Webhooks V2"]
---

# Save Integration Config

`PUT /v2/projects/{project_id}/integrations/{integration_id}/config`

Validates custom event names against the destination's rules, then upserts both the Svix endpoint headers and the event name mappings. One call per user action so the dashboard never has to sequence the two stores. Requires applications:write scope.

## Path parameters

- `project_id` string, required — Project ID
- `integration_id` string, required — Integration id as served by integration-router (e.g. 'mixpanel')

## Request body

- object
  - `credentials` object, required
  - `description` string
  - `filter_types` string[]
  - `event_names` object

## Response `200`

Success

- object
  - `endpoint_id` string, required
  - `event_names_saved` number, required

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — An unexpected error occurred on the server
- `502` — The upstream webhook provider request failed

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/e04f76c478af/schema)
