---
title: "Store customer email + optional name + move date. Sends NOTHING — required before upload-url."
method: POST
path: "/jobs/{id}/contact"
---

# Store customer email + optional name + move date. Sends NOTHING — required before upload-url.

`POST /jobs/{id}/contact`

## Request

- Base URL: `https://widget.reelquoteai.com/api/v1`
- URL: `https://widget.reelquoteai.com/api/v1/jobs/{id}/contact`
- Auth: HTTP bearer

## Request body

- object
  - `email` string, required
  - `name` string
  - `consent` boolean, required: Must be true. Express consent to email about this quote.
  - `move_date` string, date, nullable: Null clears; absent leaves unchanged.

## Response `200`

Stored

- object
  - `job_id` string
  - `contact` object
    - `email` string
    - `name` string, nullable
  - `move_date` string, date, nullable: YYYY-MM-DD

## Other responses

- `400`: `invalid_request` — A field is missing, malformed or not allowed in this state. `message` says which. `secret_key_in_url` — A secret key was sent as `?k=`. Secret keys go in the Authorization header only.
- `401`: `unauthorized` — No key, an unknown key, or a revoked key.
- `404`: `not_found` — No such job for this key, or no such endpoint.
- `429`: `rate_limited` — Per-key limit (60/min publishable, 300/min secret), the mover's daily ballpark or video-analysis cap, or a visitor's daily catalog-search cap. Obey `Retry-After`. Carries `Retry-After` in seconds.

---

[API](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api.md) · [All operations](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reelquoteai/apis/reelquoteai-us-api/revisions/56c304752192?raw)
