Vehicore
Reference

Claim Standardization

Standardize claims from photos, documents, and metadata (includes optional anonymization step).

How it works: You send photos and/or documents (multipart) plus optional metadata and your X-API-Key; the pipeline runs selected steps (anonymize, OCR, damage, structure) and returns standardized output.

The Claim Standardization API is a pipeline endpoint that can run multiple steps on your claim inputs:

  1. Anonymize (optional): face + plate anonymization on photos
  2. OCR (optional): extract text from documents
  3. Damage (optional): detect damage on (anonymized) photos
  4. Structure (optional): return a structured standardized output

You control which steps run via the steps query parameter. To get a key, register and purchase at vehicore.pro/api-keys.


Standardize claim

POST /api/claim/standardize

Request

Headers

FieldTypeRequiredDescription
X-API-KeystringYesYour API key.

Query parameters

FieldTypeRequiredDescription
stepsstringNoComma-separated steps. Example: anonymize,ocr,damage,structure. Default: all.

Body (multipart/form-data)

FieldTypeRequiredDescription
photosfile[]No*Vehicle photos (can include faces/plates).
documentsfile[]No*Claim documents (PDF/images).
metadatastringNoJSON string (e.g. {\"userLanguage\":\"en\"})

* Provide at least one of photos or documents.

Example request (full pipeline)

curl -X POST "https://api.vehicore.pro/api/claim/standardize?steps=anonymize,ocr,damage,structure" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "photos=@/path/to/photo-1.jpg" \
  -F "photos=@/path/to/photo-2.jpg" \
  -F "documents=@/path/to/document-1.pdf" \
  -F "metadata={\"userLanguage\":\"en\"}"
import fs from 'node:fs';

const formData = new FormData();
formData.append('photos', new Blob([fs.readFileSync('/path/to/photo-1.jpg')], { type: 'image/jpeg' }), 'photo-1.jpg');
formData.append('photos', new Blob([fs.readFileSync('/path/to/photo-2.jpg')], { type: 'image/jpeg' }), 'photo-2.jpg');
formData.append('documents', new Blob([fs.readFileSync('/path/to/document-1.pdf')], { type: 'application/pdf' }), 'document-1.pdf');
formData.append('metadata', JSON.stringify({ userLanguage: 'en' }));

const url = new URL('https://api.vehicore.pro/api/claim/standardize');
url.searchParams.set('steps', 'anonymize,ocr,damage,structure');

const response = await fetch(url, {
  method: 'POST',
  headers: { 'X-API-Key': process.env.VEHICORE_API_KEY },
  body: formData,
});

const data = await response.json();
import os
import json
import requests

url = "https://api.vehicore.pro/api/claim/standardize"
headers = {"X-API-Key": os.environ["VEHICORE_API_KEY"]}
params = {"steps": "anonymize,ocr,damage,structure"}

files = [
  ("photos", open("/path/to/photo-1.jpg", "rb")),
  ("photos", open("/path/to/photo-2.jpg", "rb")),
  ("documents", open("/path/to/document-1.pdf", "rb")),
]

data = {"metadata": json.dumps({"userLanguage": "en"})}

response = requests.post(url, headers=headers, params=params, files=files, data=data)
print(response.json())

“Claim anonymization” (run only anonymize step)

If you only need anonymized photos (privacy pass), call the same endpoint with:

steps=anonymize

curl -X POST "https://api.vehicore.pro/api/claim/standardize?steps=anonymize" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "photos=@/path/to/photo-1.jpg" \
  -F "photos=@/path/to/photo-2.jpg"

This runs anonymization first and skips OCR/damage/structuring.


Process mixed files (auto-detect + pipeline)

If your integration uploads a mixed bag of files (photos, document images, PDFs) and you want VehiCore to decide what each file is, use:

POST /api/claim/process

VehiCore will:

  • Categorize each file as photo or document
  • For photos: (planned) detect/extract personal info → anonymize → damage recognition
  • For documents: OCR (image documents supported; PDF OCR may be added later)
  • Return a per-file result array (so you can see what happened for each file)

Privacy / personal info

The pipeline is designed so personal info is extracted first, then images are anonymized before any downstream AI/LLM steps. Extracted personal info is returned in the response alongside other outputs.

Request

Headers

FieldTypeRequiredDescription
X-API-KeystringYesYour API key.

Body (multipart/form-data)

FieldTypeRequiredDescription
filesfile[]YesMixed list of files (photos/documents/PDFs).
metadatastringNoJSON string (e.g. {\"carSide\":\"passenger\",\"userLanguage\":\"en-US\"})

Example request

curl -X POST "https://api.vehicore.pro/api/claim/process" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "files=@/path/to/photo-1.jpg" \
  -F "files=@/path/to/document-1.jpg" \
  -F "files=@/path/to/document-2.pdf" \
  -F "metadata={\"carSide\":\"passenger\",\"userLanguage\":\"en-US\"}"

Response

The API returns:

  • receivedAt
  • files[]: per-file results (detected kind, executed steps, extracted personal info, anonymization status, OCR/damage outputs, errors)

See Swagger for the full schema.


Response

The response is a structured JSON result containing standardized claim outputs produced by the chosen steps. See Swagger for the full schema.


Possible errors

All error responses use the shape { "message": "Human-readable text", "code": "OPTIONAL_CODE" }. See Error responses for details.

StatusCodeDescription
400VALIDATION_ERRORBad Request — missing inputs, invalid metadata JSON, invalid step name.
401UNAUTHORIZEDUnauthorized — missing or invalid X-API-Key.
402INSUFFICIENT_CREDITSPayment Required — insufficient credits. Purchase more from Billing.
500Internal Server Error — unexpected server error; retry later.

On this page