# Front API

> Reference for Front REST API integration. Use when working with Front API schemas, nullable fields, webhooks, or debugging Front SDK issues.

- Skill: `majiayu000/front-api` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/front-api`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/front-api/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/front-api

---


# Front API Skill

Reference for Front REST API integration.

## OpenAPI Spec

The full OpenAPI spec is in `core-api.json` (13k+ lines). Use it as the source of truth for:
- Request/response schemas
- Nullable fields
- Enum values
- Endpoint paths

## Key Schemas

### Message
- `recipients[].name` - nullable
- `recipients[]._links.related.contact` - nullable
- `recipients[].role` - enum: `from`, `to`, `cc`, `bcc`, `reply-to`
- `author` - nullable (null for inbound from external)
- `text` - nullable (plain text version of body)

### Conversation
- `assignee` - nullable
- `recipient` - nullable for some conversation types
- `tags` - can be empty array
- `last_message` - nullable
- `scheduled_reminders` - nullable

### Recipient
```json
{
  "name": "string | null",
  "handle": "string (required)",
  "role": "from | to | cc | bcc | reply-to",
  "_links": {
    "related": {
      "contact": "string | null"
    }
  }
}
```

## Common Gotchas

1. **Webhooks send previews only** - must fetch full data via API
2. **Many fields nullable** - don't assume presence, use `.nullable()` in Zod
3. **`_links.related.contact`** - null when recipient has no contact record
4. **`role` includes `reply-to`** - often forgotten in enums

## SDK Location

`@skillrecordings/front-sdk` - Zod schemas should match this spec exactly.

## Useful Endpoints

- `GET /messages/{id}` - Full message with body
- `GET /conversations/{id}` - Conversation details
- `GET /conversations/{id}/messages` - Message history
- `POST /conversations/{id}/drafts` - Create draft reply
- `GET /inboxes/{id}` - Inbox details

