# POST /opportunities/:id/move

**Resource:** [Opportunities](./opportunities.md)  
**Scopes:** `opportunities:write`  
**Write operation:** yes

Move an opportunity to a pipeline stage. If the opportunity is not in the pipeline, it will be added. If it is in a different pipeline, it will be moved. When the stage actually changes, stage_changed automations fire automatically. Use skip_automations=true to suppress all automation triggers, or pass skip_action_ids with an array of action UUIDs to suppress only specific actions within automations (the automation still runs and is logged, but those actions are bypassed and recorded in the run's skipped_action_ids field). Legacy alias: POST /deals/:id/move.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `id` | path | uuid | yes | Opportunity ID |
| `pipeline_id` | body | uuid | yes | Target pipeline ID |
| `stage_id` | body | uuid | yes | Target stage ID |
| `position` | body | number | no | Position within stage (default 0) |
| `skip_automations` | body | boolean | no | Set true to suppress ALL stage_changed automation triggers. Default false. Use skip_action_ids for per-action control. |
| `skip_action_ids` | body | uuid[] | no | Array of automation action UUIDs to suppress on this move. The automation still fires but these specific actions are bypassed and logged in the run record. Use list_automation_actions to find action IDs. |

## Request example

```bash
curl -X POST \
  "https://api.trustpager.com/functions/v1/api/v1/opportunities/opp-uuid/move" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "pipeline_id": "pipe-uuid", "stage_id": "stage-uuid", "skip_action_ids": ["action-uuid-to-skip"] }'
```

## Response example

```json
{
  "data": {
    "id": "placement-uuid",
    "deal_id": "opp-uuid",
    "pipeline_id": "pipe-uuid",
    "stage_id": "stage-uuid",
    "position": 0
  },
  "meta": { "credits_remaining": 9499 }
}
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`