curl --request POST \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"eventId": "550e8400-e29b-41d4-a716-446655440093",
"fileName": "Claim letter.pdf",
"fileBase64": "JVBERi0xLjcKLi4u"
}
'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated"
payload = {
"eventId": "550e8400-e29b-41d4-a716-446655440093",
"fileName": "Claim letter.pdf",
"fileBase64": "JVBERi0xLjcKLi4u"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
eventId: '550e8400-e29b-41d4-a716-446655440093',
fileName: 'Claim letter.pdf',
fileBase64: 'JVBERi0xLjcKLi4u'
})
};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'eventId' => '550e8400-e29b-41d4-a716-446655440093',
'fileName' => 'Claim letter.pdf',
'fileBase64' => 'JVBERi0xLjcKLi4u'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated"
payload := strings.NewReader("{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440094"
}Upload Event Form
Upload a PDF directly as a working form attached to an existing claim or incident. No template is needed. The form appears in the event’s existing Forms tab with preview, download, and delete actions. It has no document editor and creates no issued packet or historical issuance date.
Accepts a readable, unencrypted, nonempty PDF up to 20 MB. The original bytes are stored unchanged. For historical quote/policy issued documents use Import Historical Form Packet.
Required permission: form.create, plus event.view for the target event.
curl --request POST \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"eventId": "550e8400-e29b-41d4-a716-446655440093",
"fileName": "Claim letter.pdf",
"fileBase64": "JVBERi0xLjcKLi4u"
}
'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated"
payload = {
"eventId": "550e8400-e29b-41d4-a716-446655440093",
"fileName": "Claim letter.pdf",
"fileBase64": "JVBERi0xLjcKLi4u"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
eventId: '550e8400-e29b-41d4-a716-446655440093',
fileName: 'Claim letter.pdf',
fileBase64: 'JVBERi0xLjcKLi4u'
})
};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'eventId' => '550e8400-e29b-41d4-a716-446655440093',
'fileName' => 'Claim letter.pdf',
'fileBase64' => 'JVBERi0xLjcKLi4u'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated"
payload := strings.NewReader("{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/forms/generated")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventId\": \"550e8400-e29b-41d4-a716-446655440093\",\n \"fileName\": \"Claim letter.pdf\",\n \"fileBase64\": \"JVBERi0xLjcKLi4u\"\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440094"
}Authorizations
Headers
A retry with the same key and request returns the original form id for 30 days from the successful first request. Keys are scoped to the calling credential. Reusing a key with a different request within that window returns 422 IDEMPOTENCY_KEY_REUSED. Failed attempts store no key. After 30 days a request uploads a new form, even with the same key.
1 - 255^[\x20-\x7E]{1,255}$