---
title: "Embedder Register"
method: POST
path: "/v1/embedders/register"
tags: ["embedders"]
---

# Embedder Register

`POST /v1/embedders/register`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/embedders/register`
- Auth: none declared

Public self-serve register endpoint.

Behaviour:
  1. Validate the site_url (https-only, sane host).
  2. Look up existing row by contact_email. If found, return 200
     with ``already_registered=True`` and re-send the verify-email
     link rather than minting a duplicate. This is the
     no-enumeration posture: we do NOT 4xx on duplicates because a
     4xx would let an attacker probe which BD/AP contacts are
     already in our system.
  3. Otherwise mint a slug + ref_token, insert the row, mint a
     verify-email magic link (24h), send via Postmark BD.

Rate limiting: a slowapi-style middleware sits upstream in
``app.main`` and applies the standard public-endpoint cap. We don't
re-implement it here.

## Request body

- RegisterBody
  - `display_name` string, required
  - `contact_email` string, required
  - `site_url` string, required

## Response `201`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
