Skip to main content
POST
Create a new title entry
Create a title entry from structured account_data, document URLs, or a raw array of document URLs. If an entry with the same VIN already exists for your organization, Porter updates the existing entry instead of creating a duplicate.

Response Variants

This endpoint returns HTTP 200 for successful creates and updates.
string
Returned for new entries and for existing entries when enrichment is requested.
string
pending for new entries, or enriching when an existing VIN is updated and a sync flag was requested.
When an existing VIN is updated without sync flags, the API returns the full patched title entry instead of the minimal {entryId, job_status} response.

Notes

  • A raw JSON array is accepted as a legacy shorthand for { "attachments": [...] }.
  • If sync_public or sync_private is requested without an issuing state, the API automatically enables sync_nmvtis.
  • dppa_exemption is optional on create. When provided, it is passed through to enrichment requests.

Authorizations

Authorization
string
header
required

API key or Clerk JWT supplied as Authorization: Bearer

Body

application/json

Title entry data - either structured AccountData or document URLs for processing

Recommended format: combine document uploads with partial structured data for best results

attachments
string<uri>[]

Array of document URLs to be processed via OCR and data extraction. Supported formats: PDF, JPG, PNG

account_data
object

Additional structured data, such as loan applicant information. Data will be intelligently merged with OCR-extracted data.

groupId
string

Optional user group ID for organizational access control and workflow routing

sync_nmvtis
boolean

Whether to sync NMVTIS data

sync_public
boolean

Whether to sync public DMV data

sync_private
boolean

Whether to sync private DMV data

dppa_exemption
string

Driver's Privacy Protection Act exemption code. Passed through to enrichment requests when provided; create requests do not validate it as required.

website
string

Accepted for legacy clients but ignored; the organization is derived from authentication.

Response

Title entry created or existing entry updated. The response variant depends on VIN deduplication and requested sync flags.

New entry created; job_status is pending

entryId
string<uuid>
required

Unique identifier for the created title entry

Example:

"550e8400-e29b-41d4-a716-446655440000"

job_status
enum<string>
required

Will be 'pending' for new entries

Available options:
pending,
input_parsing,
enriching,
generating_forms,
complete,
error
Example:

"pending"