Skip to content
Connect an agent
Enterprise

Send an Enterprise enquiry

For the Enterprise page of the Plotwork site and the Talk to sales form of the portal.

POST/enterprise/enquiries

TL;DR

QuestionAnswer
What does it do?Send an Enterprise enquiry.
What does it take?A JSON body of type EnquiryBody.
What does it return?Status 200 with a body of type EnquiryAck.
What can go wrong?400 a field is missing, too long, or not one of the choices. the answer names each field in details; 413 the body is larger than 16 kib; 429 too many requests from this address; 503 this server has no database. Every failure uses the one error envelope.

What it does

For the Enterprise page of the Plotwork site and the Talk to sales form of the portal. Anyone may send an enquiry, signed in or not. The body is the name, work email, company, company size, number of repositories, what the company needs and use case the person typed, and from the portal where the form was opened (context). When the request carries a session cookie from an origin on the allowlist, the enquiry is linked to that account, its address replaces the one in the body, and the organisation context.org names is kept only when the account is a member; the account is never read from the body. Without a session the enquiry is linked to nothing. Plotwork stores those fields and the time, and emails them to its own inbox with the person as the reply-to; it stores no address, header or cookie with them, and deletes an enquiry 24 months after it was sent. The answer is { "received": true } whatever happens after the checks, and never names where the email went. An enquiry whose website field is filled, or that was sent faster than a person fills the form (elapsedMs), is dropped with the same answer. The route is rate limited by the caller's address at the tight tier, which Cloudflare's rate limiter holds as a counter key for 60 seconds; Plotwork's own code does not store it. The body is capped at 16 KiB.

Request body

The body has the type EnquiryBody.

FieldTypeRequiredDescription
namestringyesThe name of the person asking. at least 1 character; at most 120 characters.
emailstringyesTheir work email address. The reply goes here.
companystringyesThe company. at least 1 character; at most 120 characters.
companySize"1-49" | "50-249" | "250-999" | "1000-4999" | "5000+"yesHow many people the company has.
repos"1-9" | "10-49" | "50-199" | "200-999" | "1000+"yesHow many repositories the team would run diagrams in.
useCasestringyesWhat the team wants to do, in their words. at least 10 characters; at most 2000 characters.
interests("sso-scim" | "audit-siem" | "support-sla" | "limits" | "self-hosting" | "invoicing")[]noWhat the company needs, as the boxes ticked on the form. Left out, nothing was ticked; a box named twice counts once.
contextEnquiryContextnoSent by the portal: where the form was opened. The site sends none.
context.page"contact" | "plan" | "sso" | "integrations" | "support" | "audit"yesThe place in the portal the form was opened from, such as sso for the Single sign-on panel.
context.orgstringnoThe slug of the organisation the form was opened from. Kept only when the signed-in account is a member. pattern ^[a-z0-9](?:[a-z0-9-]{1,38}[a-z0-9])$.
websitestringnoLeave empty. A field people do not see: an enquiry that fills it is taken for a script and dropped, with the same answer. at most 200 characters.
elapsedMsintegeryesMilliseconds between the form being shown and being sent. An enquiry sent faster than a person can type is dropped, with the same answer. minimum 0.

Responses

StatusMeaningBody
200Received. The same answer whether the enquiry was kept or dropped as a script.EnquiryAck
400A field is missing, too long, or not one of the choices. The answer names each field in details.ErrorResponse
413The body is larger than 16 KiB.ErrorResponse
429Too many requests from this address.ErrorResponse
503This server has no database.ErrorResponse

Response body

A 200 answer has the type EnquiryAck.

FieldTypeRequiredDescription
receivedtrueyesAlways true. The enquiry was received.

See also

DocWhy
API referenceEvery endpoint, and the error envelope
SchemasEvery request and response type
Tool referenceThe operations as callable tools