Skip to main content
POST
Publish a template

Authorizations

Authorization
string
header
required

Secret API key, created in the dashboard under Settings → API. Send it as Authorization: Bearer rk_secret_… from your server only. Publishable keys (pk_live_…) are for the native SDKs and reach the capture endpoints alone. An unknown key returns 401.

Body

application/json

slug, name and steps are required. Everything else is optional.

slug
string
required

URL-safe id, unique in your account: lowercase letters, digits and single hyphens.

Required string length: 2 - 40
Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
name
string
required

Name shown in the dashboard and to the person capturing.

Required string length: 1 - 80
steps
object[]
required

Steps every person goes through, in order.

Minimum array length: 1
mode
enum<string>
default:capture

capture (live photos, default), audit (uploaded files) or hybrid.

Available options:
capture,
audit,
hybrid
expires_in_seconds
integer
default:3600

How long each verification minted from the link stays open, in seconds. Default 3600.

Required range: 60 <= x <= 86400
status
enum<string>
default:active

active (default) publishes the link. draft only allows simulation.

Available options:
draft,
active
metadata
object

Key/value strings stamped on every verification from this template.

expected_location
string

Street address every photo must be taken at. Turns on location_match.

Required string length: 1 - 300
expected_object
string

What must appear in the photos, e.g. "car". Turns on object_match.

Required string length: 1 - 200
condition_aspects
string[]

One to six aspects to score from 0 to 10. Turns on condition.

Required array length: 1 - 6 elements
Required string length: 1 - 40
expected_info
object

Structured alternative to expected_location, expected_object and condition_aspects. Send one form or the other.

daily_cap
integer

Maximum verifications per day. Absent = no cap.

Required range: 1 <= x <= 10000
total_cap
integer

Maximum verifications in total. Absent = no cap.

Required range: 1 <= x <= 1000000
brand_slug
string

Brand profile shown on the capture page. Absent = your default brand.

Required string length: 2 - 40
Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
notify_email
string<email>

Email that receives each result. Inherited by every verification from this template.

Maximum string length: 254
notify_subject_template
string

Subject of the result email. {variable} placeholders allowed.

Minimum string length: 1
notify_body_template
string

Body of the result email. {variable} placeholders allowed.

Minimum string length: 1
completion_message
string

Full plain-text message shown after submitting content. HTML, markdown and variables are not interpreted. Omit on create or send null on PATCH to use the default.

Required string length: 1 - 2000
identification
object

Which step identifies the person, and how to find their row in the connected database.

database
object

Connected database: the table and which columns feed the checks.

requires_location
boolean

Require a GPS fix on the first photo of every run without comparing it to an address.

Response

Template published. version is always 1 on create.

slug
string
required
name
string
required
mode
enum<string>
required
Available options:
capture,
audit,
hybrid
steps
object[]
required
expires_in_seconds
integer
required
status
enum<string>
required
Available options:
active,
paused
started_total
integer
required
started_today
integer
required
version
integer
required
Required range: x >= 1
created_at
string<date-time>
required
updated_at
string<date-time>
required
org_slug
string
public_url
string<uri>
metadata
object
expected_info
object
expected_location
object
expected_object
object
condition_aspects
any[]
brand_slug
string
notify_email
string<email>
notify_subject_template
string
notify_body_template
string
completion_message
string

Full plain-text message shown after submitting content. HTML, markdown and variables are not interpreted. Omit on create or send null on PATCH to use the default.

Required string length: 1 - 2000
identification
object
requires_location
boolean
database
object
daily_cap
integer
total_cap
integer