# Open a support ticket

Open a ticket with Vocatech support from your help desk, an automation or an AI agent's action. It lands in our support inbox and is worked like an email or a text.

**curl**

```bash
curl -X POST https://api.vocatech.com/v1/support/tickets \
  -H "Authorization: Bearer $VOCATECH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Fax line not receiving",
    "message": "Our fax line has not received anything since 8 AM. Please call back.",
    "contact_name": "Maya Chen",
    "contact_phone": "7185550100",
    "reply_by": "call",
    "reference": "helpdesk-4821",
    "source": "Office help desk"
  }'
```

**Node**

```javascript
import { vt } from './vocatech.mjs';

const { ticket } = await vt('POST', '/v1/support/tickets', {
  subject: 'Fax line not receiving',
  message: 'Our fax line has not received anything since 8 AM. Please call back.',
  contact_name: 'Maya Chen',
  contact_phone: '7185550100',
  reply_by: 'call',
  reference: 'helpdesk-4821', // the same reference within 7 days adds to this ticket
  source: 'Office help desk',
});
console.log(ticket.key, ticket.appended ? 'added to the open ticket' : 'opened');
```

**Python**

```python
from vocatech import vt

ticket = vt("POST", "/v1/support/tickets", {
    "subject": "Fax line not receiving",
    "message": "Our fax line has not received anything since 8 AM. Please call back.",
    "contact_name": "Maya Chen",
    "contact_phone": "7185550100",
    "reply_by": "call",
    "reference": "helpdesk-4821",  # the same reference within 7 days adds to this ticket
    "source": "Office help desk",
})["ticket"]
print(ticket["key"], "added" if ticket["appended"] else "opened")
```

**PHP**

```php
<?php
require __DIR__ . '/vocatech.php';

$ticket = vt('POST', '/v1/support/tickets', [
    'subject'       => 'Fax line not receiving',
    'message'       => 'Our fax line has not received anything since 8 AM. Please call back.',
    'contact_name'  => 'Maya Chen',
    'contact_phone' => '7185550100',
    'reply_by'      => 'call',
    'reference'     => 'helpdesk-4821', // the same reference within 7 days adds to this ticket
    'source'        => 'Office help desk',
])['ticket'];
echo $ticket['key'], $ticket['appended'] ? ' added' : ' opened', PHP_EOL;
```

**Response201 CreatedCopy**

```json
{
  "ticket": {
    "key": "case-20260924-133000-7d2f0c9a1b3e4d5f6a7b8c9d0e1f2a3b",
    "subject": "Fax line not receiving",
    "status": "open",
    "created_at": "2026-09-24T13:30:00+00:00",
    "appended": false
  }
}
```

- `message` is required: what the person needs, in their own words, up to 4,000 characters.
- The same `reference` within 7 days adds to the ticket it opened, and answers `200` with `appended: true`.
- `409` means the ticket is busy right now. Wait for `Retry-After` (60 seconds) and send it again.
- Each key may open 10 tickets a minute and 200 a day.
