Application mail
POST /me/emails Session or API key
Push a batch your own mail client fetched.
Stored under source external. HireAll provides no transport here and never classifies this mail — that is the point of the tier. external_id (the Message-ID in practice) is the dedup key: re-pushing the same id updates that message instead of storing a copy, so a nightly re-sync is safe. Content columns are refreshed; your read, deleted and triage state is not, so a re-sync cannot resurrect deleted mail or wipe a verdict. At most 100 messages per call, applied as one transaction — an oversized batch is refused, never truncated.
Body
messagesarray required- Up to 100 messages.
messages[].external_idstring required- Dedup key; the Message-ID header.Example
<CAF...@mail.gmail.com> messages[].thread_idstring- Provider thread id, if you have one.
messages[].from_addrstring- Sender address.
messages[].from_namestring- Sender display name — the matcher reads the company name from here.
messages[].subjectstring- Subject line.
messages[].body_textstring- Plain-text body.
messages[].body_htmlstring- HTML body; used when there is no text part.
messages[].received_atstring (RFC3339)- When the message arrived.
curl -X POST "https://freehire.me/api/v1/me/emails" \
-H "Authorization: Bearer fhk_…" \
-H 'Content-Type: application/json' \
-d '{"messages":[{"external_id":"<CAF...@mail.gmail.com>","from_addr":"no-reply@us.greenhouse-mail.io","subject":"Thank you for applying","received_at":"2026-07-24T09:12:00Z"}]}'{ "data": { "inserted": 1, "updated": 0 } }