---
title: "Submit Portal Referral"
method: POST
path: "/portal/referrals"
tags: ["Referral Portal"]
---

# Submit Portal Referral

`POST /portal/referrals`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/portal/referrals`
- Auth: none declared

Submit a new referral; enqueues the SmartAdvocate push.

## Request body

- ReferralSubmitRequest: A referral and the client's intake. Required (the firm's rule): first and last name, email, phone and home address — the retainer packet is sent to the email and prints the name and address. Date of birth and SSN are asked for but optional, and so is every other intake question.
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, required
  - `phone_number` string, required
  - `address_line1` string, required
  - `address_line2` string, nullable
  - `city` string, required
  - `state` string, required
  - `zip_code` string, required
  - `county` string, nullable
  - `date_of_birth` string, date, nullable
  - `ssn` string, nullable: Optional; stored encrypted, never returned
  - `incident_date` string, date, required: Required: the date of loss, also how a duplicate case is spotted
  - `preferred_language` string
  - `preferred_language_other` string, nullable
  - `case_description` string, nullable
  - `intake` ReferralIntakeInput
    - `referral` ReferralHowReferred: How the client came to the firm, when the partner isn't the source.
      - `channel` 'prior_client' | 'friend_or_family' | 'law_firm' | 'advertising' | 'other', nullable
      - `name` string, nullable: Who: the firm, the ad, or the person
    - `incident` ReferralIncident
      - `incident_type` 'car_accident' | 'premises' | 'other', nullable
      - `incident_type_other` string, nullable
      - `time` string, nullable: Time of day, e.g. 3:15 PM
      - `location` string, nullable
      - `street` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `county` string, nullable
      - `description` string, nullable
      - `client_role` 'driver' | 'passenger' | 'pedestrian' | 'bicyclist' | 'other', nullable
      - `police_responded` boolean, nullable
      - `police_report_filed` boolean, nullable
      - `police_department` string, nullable: Agency / precinct
      - `police_report_number` string, nullable
      - `tickets_or_arrests` boolean, nullable
      - `tickets_or_arrests_details` string, nullable
      - `property_damage` boolean, nullable
      - `property_damage_description` string, nullable
    - `treatment` ReferralTreatment
      - `injuries` string, nullable: Describe the injuries
      - `ambulance_on_scene` boolean, nullable
      - `transported_by_ambulance` boolean, nullable
      - `hospital_name` string, nullable
      - `hospital_visit` 'emergency' | 'outpatient' | 'inpatient', nullable
      - `admission_date` string, date, nullable
      - `treated_by_doctor` boolean, nullable
      - `medical_providers` ReferralMedicalProvider[]
        - `name` string, nullable
        - `address` string, nullable
      - `treatment_ongoing` boolean, nullable
    - `client_vehicle` ReferralVehicle
      - `owner_name` string, nullable
      - `driver_name` string, nullable
      - `year` string, nullable
      - `make` string, nullable
      - `model` string, nullable
      - `color` string, nullable
      - `plate_number` string, nullable
      - `plate_state` string, nullable
      - `insurance_company` string, nullable
      - `policy_number` string, nullable
      - `claim_number` string, nullable
    - `other_vehicle` ReferralVehicle
      - `owner_name` string, nullable
      - `driver_name` string, nullable
      - `year` string, nullable
      - `make` string, nullable
      - `model` string, nullable
      - `color` string, nullable
      - `plate_number` string, nullable
      - `plate_state` string, nullable
      - `insurance_company` string, nullable
      - `policy_number` string, nullable
      - `claim_number` string, nullable
    - `health_insurance` ReferralHealthInsurance
      - `has_health_insurance` boolean, nullable
      - `types` string[]
      - `company` string, nullable
      - `medicare_id` string, nullable
    - `household` ReferralHousehold
      - `lives_alone` boolean, nullable
      - `members` ReferralPerson[]
        - `name` string, nullable
        - `relationship` string, nullable
        - `phone` string, nullable
        - `address` string, nullable
        - `date_of_birth` string, date, nullable
      - `household_vehicle` boolean, nullable: Does the client or a relative they live with own a vehicle?
      - `household_vehicle_details` string, nullable: Owner, insurance company, policy number
    - `employment` ReferralEmployment
      - `employed` boolean, nullable
      - `employer_name` string, nullable
      - `employer_address` string, nullable
      - `occupation` string, nullable
      - `weekly_earnings` string, nullable
      - `hours_per_day` string, nullable
      - `on_job_injury` boolean, nullable
      - `lost_time_from_work` boolean, nullable
      - `lost_time_details` string, nullable
      - `receiving_unemployment` boolean, nullable
      - `disability_or_workers_comp` boolean, nullable
    - `witnesses` ReferralPerson[]
      - `name` string, nullable
      - `relationship` string, nullable
      - `phone` string, nullable
      - `address` string, nullable
      - `date_of_birth` string, date, nullable
    - `prior_attorney` ReferralPriorAttorney
      - `has_prior_attorney` boolean, nullable
      - `firm_name` string, nullable
      - `attorney_name` string, nullable
      - `address` string, nullable
      - `phone` string, nullable
    - `prior_injuries_or_claims` boolean, nullable
    - `prior_claims_details` string, nullable
    - `other_expenses` string, nullable
    - `additional_notes` string, nullable
    - `additional_plaintiffs` ReferralAdditionalPlaintiffInput[]
      - `first_name` string, required
      - `last_name` string, required
      - `relationship` string, nullable: To the main client, e.g. wife, son
      - `phone` string, nullable
      - `email` string, nullable
      - `same_address` boolean: Lives at the main client's address
      - `address_line1` string, nullable
      - `address_line2` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `zip_code` string, nullable
      - `date_of_birth` string, date, nullable
      - `preferred_language` 'en' | 'es' | 'other', nullable
      - `preferred_language_other` string, nullable
      - `role` 'driver' | 'passenger' | 'pedestrian' | 'bicyclist' | 'other', nullable
      - `treatment` ReferralTreatment
        - `injuries` string, nullable: Describe the injuries
        - `ambulance_on_scene` boolean, nullable
        - `transported_by_ambulance` boolean, nullable
        - `hospital_name` string, nullable
        - `hospital_visit` 'emergency' | 'outpatient' | 'inpatient', nullable
        - `admission_date` string, date, nullable
        - `treated_by_doctor` boolean, nullable
        - `medical_providers` ReferralMedicalProvider[]
          - `name` string, nullable
          - `address` string, nullable
        - `treatment_ongoing` boolean, nullable
      - `health_insurance` ReferralHealthInsurance
        - `has_health_insurance` boolean, nullable
        - `types` string[]
        - `company` string, nullable
        - `medicare_id` string, nullable
      - `employment` ReferralEmployment
        - `employed` boolean, nullable
        - `employer_name` string, nullable
        - `employer_address` string, nullable
        - `occupation` string, nullable
        - `weekly_earnings` string, nullable
        - `hours_per_day` string, nullable
        - `on_job_injury` boolean, nullable
        - `lost_time_from_work` boolean, nullable
        - `lost_time_details` string, nullable
        - `receiving_unemployment` boolean, nullable
        - `disability_or_workers_comp` boolean, nullable
  - `attachment_ids` string[]: Files uploaded with POST /portal/referrals/attachments
  - `draft_id` string, uuid, nullable: The draft this referral was written in; deleted on submit
  - `existing_case` ReferralExistingCase: Finishing a case staff opened: which one, and the fields the partner agreed to overwrite.
    - `case_number` string, required
    - `confirmed_changes` string[]

## Response `200`

Successful Response

- ReferralSubmitResponse
  - `referral_id` string, uuid, required
  - `status` string, required
  - `message` string, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `1e3d95fc77b0`: 1 info
  - added the new optional request property `intake/incident/location`
- **2026-10-21** `2f23018e6e01`: 2 breaking, 2 info
  - the request property `incident_date` became required
  - request property `incident_date` list-of-types was narrowed by removing types `null` from media type `application/json`
  - added the new optional request property `existing_case`
  - added the new optional request property `intake/additional_plaintiffs`
- **2026-10-19** `78354dbadf92`: 1 info
  - added the new optional request property `draft_id`
- **2026-10-16** `b3a39dc007df`: 2 info
  - added the new optional request property `attachment_ids`
  - added the new optional request property `intake/referral`
- **2026-10-16** `47c26f79c0d8`: 10 breaking, 2 warning, 6 info
  - added the new required request property `address_line1`
  - added the new required request property `city`
  - added the new required request property `state`
  - added the new required request property `zip_code`
  - …14 more

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/portal/referrals/post.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
