public-demo-request

Request Demo

Books a real half-hour with whichever accepting host it is fairest to hand it to, or answers 409 {"error": "slot_taken"} when the visitor's chosen slot is gone.

ORDER OF CHECKS MATTERS. The honeypot runs FIRST and short-circuits everything else, including Turnstile and even the elapsed-time check: a script that fills every field it finds -- including the hidden one -- is answered as cheaply as possible, with a plausible fake success and nothing written, before a single database query or Turnstile call is spent on it. Real defenses (elapsed-time, then Turnstile) run only for submissions that got past the trap; the rate limiter runs before all of it, since it is the cheapest check and the one that protects the other two from being run at all under a flood.

post/api/public/demo/request

Request

  • Base URL: https://api.pigeonly.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.pigeonly.com/api/public/demo/request
  • Auth: none declared

Request body

facility_namestring required
org_type'correctional_facility' | 'partner' | 'legal' | 'advocacy' | 'government_office' nullable
facility_typestring nullable
adp_estimateinteger nullable
contact_namestring required
contact_titlestring required
contact_emailstring required
contact_phonestring required
guest_emailsstring[]
tzstring required
slot_start_utcstring date-time required
turnstile_tokenstring nullable
company_websitestring nullable
form_started_atstring nullable
utm_sourcestring nullable
utm_mediumstring nullable
utm_campaignstring nullable
utm_contentstring nullable
utm_termstring nullable
landing_pathstring nullable
referrerstring nullable

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.