Optimaite

Parties

Manage contacts -- persons, organizations, and courts -- with addresses, phone numbers, bank accounts, and identifiers.

2 Min. LesezeitAktualisiert 26. Mai 2026

Parties represent all contacts in your legal practice: individual persons, organizations, and courts. Each party can have multiple addresses, contact details, identifiers, bank accounts, and insurance policies.

Endpoints

MethodPathDescription
GET/api/v1/partiesList parties
POST/api/v1/partiesCreate a party
GET/api/v1/parties/{id}Get a party
PUT/api/v1/parties/{id}Update a party
DELETE/api/v1/parties/{id}Delete a party
GET/api/v1/parties/{id}/addressesList addresses
POST/api/v1/parties/{id}/addressesCreate an address
PUT/api/v1/parties/addresses/{addr_id}Update an address
DELETE/api/v1/parties/addresses/{addr_id}Delete an address
GET/api/v1/parties/{id}/contactsList contacts (phone, email)
POST/api/v1/parties/{id}/contactsCreate a contact
GET/api/v1/parties/{id}/identifiersList identifiers
POST/api/v1/parties/{id}/identifiersCreate an identifier
GET/api/v1/parties/{id}/bank-accountsList bank accounts
POST/api/v1/parties/{id}/bank-accountsCreate a bank account
POST/api/v1/parties/conflict-checkRun a conflict check

Required scope: parties:read for GET endpoints, parties:write for POST/PUT, parties:delete for DELETE.

The Party Object

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "person",
  "display_name": "Erika Mustermann",
  "first_name": "Erika",
  "last_name": "Mustermann",
  "title": null,
  "date_of_birth": "1980-03-15",
  "addresses": [
    {
      "id": "addr_01",
      "type": "work",
      "street": "Musterstrasse 42",
      "zip": "10115",
      "city": "Berlin",
      "country": "DE"
    }
  ],
  "contacts": [
    {
      "id": "cnt_01",
      "type": "email",
      "value": "erika.mustermann@example.test"
    }
  ]
}

Party Types

TypeDescriptionKey Fields
personIndividual personfirst_name, last_name, title, date_of_birth
organizationCompany or institutioncompany_name, legal_form, registration_number
courtCourt or tribunalcourt_name, court_type, jurisdiction

Conflict Check

POST /api/v1/parties/conflict-check

Check whether a party name or identifier conflicts with existing parties across your workspace:

{
  "query": "Smith",
  "check_identifiers": true
}

List Parties

GET /api/v1/parties?type=person&search=Smith&limit=50

Query Parameters

ParameterTypeDescription
cursorstringPagination cursor
limitintegerResults per page (1-100, default 50)
typestringFilter: person, organization, court
searchstringSearch by name, company, or email

Next Steps

  • Cases -- Link parties to cases
  • Documents -- Assign documents to parties
Contact

Let's talk

Ready for the next step? Tell us about your project and we'll show you how Optimaite can help.

By submitting, you agree to our Privacy Policy .