POST /v1/public/contact
Submit the public contact form. Delivers an email to the configured recipient via the central B3 Notifications API. No auth; IP-rate-limited (see configs.contact.rate_limit_per_hour).
POST
/v1/public/contact
Submit the public contact form. Delivers an email to the
configured recipient via the central B3 Notifications API. No
auth; IP-rate-limited (see configs.contact.rate_limit_per_hour).
Request Body required
Contact form payload
application/jsonOne of:
Option 1
Option 2
email
string
REQUIRED
firstName
string
REQUIRED
lastName
string
REQUIRED
message
string
REQUIRED
phone
string
Responses
200
OK
application/jsoncode
integer
data
object
ok
boolean
message
string
400
Bad Request
429
Too Many Requests
502
Bad Gateway
503
Service Unavailable
curl -X POST 'https://api.example.com/v1/public/contact' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{}'
const response = await fetch('https://api.example.com/v1/public/contact', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({})});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/public/contact', headers=headers, json={})print(response.json())
package mainimport ( "fmt" "io" "net/http" "strings")func main() { body := strings.NewReader(`{}`) req, _ := http.NewRequest("POST", "https://api.example.com/v1/public/contact", body) req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() result, _ := io.ReadAll(resp.Body) fmt.Println(string(result))}
200
Response
{ "code": 123, "data": { "ok": true }, "message": "<string>"}
API Playground
Try this endpoint
POST
/v1/public/contact
