# Fashion Tools API

Base URL: https://fashiontools.io

The public API supports the Fashion Tools marketing site. It is intended for contact intake, waitlist signup, and service health checks. Analytics stays in the consent-gated client and is not exposed as a public mutation endpoint. Admin waitlist routes are private operator APIs and are not included in this public catalog.

Machine-readable discovery:

- API catalog: https://fashiontools.io/.well-known/api-catalog
- OpenAPI: https://fashiontools.io/openapi.json
- Health: https://fashiontools.io/api/health

## POST /api/contact

Submits a contact request to the Fashion Tools team.

Required JSON fields:

- `name`: string, 1 to 120 characters
- `email`: valid email address
- `message`: string, 20 to 4000 characters

Optional JSON fields:

- `company`: honeypot field. Legitimate clients should leave it empty.

Successful response:

```json
{ "ok": true }
```

## POST /api/waitlist

Submits a waitlist signup.

Required JSON fields:

- `email`: valid email address
- `consentMarketing`: true

Optional JSON fields:

- `name`, `company`, `role`, `message`, `locale`
- `mainInterest`: one of `mockup`, `design`, `color_separation`, `3d_mapping`, `studio_platform`, `other`
- `source`, `utmSource`, `utmMedium`, `utmCampaign`, `utmContent`, `utmTerm`, `referrer`, `landingUrl`, `youtubeVideoId`
- `website`: honeypot field. Legitimate clients should leave it empty.

Successful response:

```json
{ "ok": true, "alreadyRegistered": false, "status": "new" }
```

## GET /api/health

Returns service health metadata for discovery and uptime checks.

```json
{ "ok": true, "service": "fashiontools", "status": "ok" }
```
