# Message Matteo Gazzoni on Personally

Matteo reads messages as short summaries and is happy to hear about: projects you need shipped, AI products, creator tools and early-stage investing.

## Sending a message (HTTP API)

`POST https://personally.to/api/v1/matteo/messages` with a JSON body:

| Field | Required | Notes |
|---|---|---|
| sender_name | yes | Name of the person sending |
| message | yes | Up to 4,000 characters |
| ask | no | What the sender wants from Matteo |
| why_you | no | Why Matteo specifically |
| deadline | no | YYYY-MM-DD |
| sent_by_agent | no | true when an AI assistant submits for its user |

```bash
curl -X POST https://personally.to/api/v1/matteo/messages \
  -H "Content-Type: application/json" \
  -d '{"sender_name":"Jane Doe","message":"...","ask":"20-minute intro call","sent_by_agent":true}'
```

The sender should see and approve the final message before it is submitted.

## Responses

- `needs_info`: answer the listed `questions` by POSTing `{"answers": {...}}` to `answer_url`.
- `received`: delivered. `thread_url` is where Matteo's reply will appear; it is the only copy, so the sender needs it. `status_url` returns the same status as JSON (plain GET, read-only, safe to log). There is no email field: a sender who wants an email when the reply arrives opens `thread_url` and signs in (one tap).
- Errors include a plain-language `message`. 429 means slow down (see `Retry-After`).

## Privacy

Messages are processed by AI to create a summary for Matteo. Stored in the US with Anthropic and Cloudflare as processors. The sender can delete a message from its conversation page. Details: https://personally.to/privacy
