# POST /v1/convai/agents/{agent_id}/merge-proposals (ElevenLabs API)
Base URL: https://api.elevenlabs.io
Auth: xi-api-key: <ELEVENLABS_API_KEY>
Last verified: 2026-10-01

> Create A Merge Proposal

## Critical Gotchas
* Authentication uses the non-standard `xi-api-key` header, not `Authorization: Bearer`. Sending a Bearer token returns HTTP 401.
* Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (`--output speech.mp3`) rather than parsing it.

## cURL
curl -X POST 'https://api.elevenlabs.io/v1/convai/agents/agent-id/merge-proposals' \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"source_branch_id":"source-branch-id","target_branch_id":"target-branch-id","title":"example-title"}'

## Parameters
| Name | In | Type | Required | Description |
| :--- | :--- | :--- | :--- | :--- |
| agent_id | path | string | Yes | The id of an agent. This is returned... |
| source_branch_id | body | string | Yes | Branch whose changes should be merged. |
| target_branch_id | body | string | Yes | Branch that should receive the changes. |
Other params: title, description, requested_reviewer_user_ids, triage_ticket_id

## Response (200 OK)
{"created_merge_proposal_id":"string"}

---
Need an API key? Get one at https://elevenlabs.io/app/sign-up