Send to Objective Health

POST patient/lead data to Objective Health. The API normalizes phone (digits only), DOB (YYYY-MM-DD), maps race and recruitment_status to their values, then forwards to Objective Health.

Automatic conversions

  • Phone: Any format → digits only (e.g. 555-123-45675551234567)
  • DOB: MM/DD/YYYY or other → YYYY-MM-DD
  • Race: white/caucasian → White; black → Black or African American; asian → Asian; american indian → American Indian or Alaska Native; pacific → Native Hawaiian or Other Pacific Islander; unknown/empty → Not Reported
  • Recruitment status: "Qualified for Screening" or "Not Contacted" → Referral; "DNQ - Not Qualified" → Not eligible
Minimal request
study_id, site_id, API key, and contact fields. Phone and DOB are normalized; race and recruitment_status are mapped.

Request body

{
  "key": "your-objective-health-api-key",
  "study_id": 869,
  "site_id": 9,
  "email": "john.doe@example.com",
  "phone_number": "555-123-4567",
  "first_name": "John",
  "last_name": "Doe",
  "postal_code": "12345",
  "date_of_birth": "12/17/1992",
  "gender": "Male",
  "race": "white",
  "ethnicity": "Not Hispanic or Latino",
  "recruitment_status": "Qualified for Screening"
}
Endpoint
POST to our proxy; we forward to Objective Health

POST /api/objective-health/send-patient

Forwards to https://api.screen.objective.health/api/vip/patients with x-api-key and normalized body.

API key: send key, apiKey, or x-api-key in the request body (or set OBJECTIVE_HEALTH_API_KEY in the environment).

Request examples
With questions array or question_N / answer_N

With questions array (height/weight)

{
  "key": "your-objective-health-api-key",
  "study_id": 869,
  "site_id": 9,
  "email": "john.doe@example.com",
  "phone_number": "(555) 123-4567",
  "first_name": "John",
  "last_name": "Doe",
  "postal_code": "12345",
  "date_of_birth": "1992-12-17",
  "height": 70,
  "height_unit": "in",
  "weight": 180,
  "weight_unit": "lb",
  "gender": "Male",
  "race": "Caucasian",
  "ethnicity": "Not Hispanic or Latino",
  "recruitment_status": "Not Contacted",
  "questions": [
    { "question": "Are you 18 years or older?", "answer": "Yes" },
    { "question": "Do you have Type 2 diabetes?", "answer": "Yes" }
  ]
}

With question_1 / answer_1, question_2 / answer_2, …

{
  "key": "your-api-key",
  "study_id": 869,
  "site_id": 9,
  "email": "jane@example.com",
  "phone_number": "5559876543",
  "first_name": "Jane",
  "last_name": "Smith",
  "date_of_birth": "01/15/1985",
  "race": "black",
  "recruitment_status": "DNQ - Not Qualified",
  "question_1": "Are you 18 years or older?",
  "answer_1": "Yes",
  "question_2": "Are you currently pregnant?",
  "answer_2": "No"
}
Field reference
Required and optional fields

Required

  • key / apiKey / x-api-key - Objective Health API key
  • study_id - study ID (changes per submission)
  • site_id - site ID (changes per submission)
  • email, phone_number, first_name, last_name, date_of_birth, race

Optional

  • postal_code, gender / sex, ethnicity
  • height, height_unit (default "in"), weight, weight_unit (default "lb")
  • recruitment_status - we map to "Referral" or "Not eligible"
  • questions array or question_1/answer_1, question_2/answer_2, …
Response
Success and error format
{
  "success": true,
  "message": "Data successfully sent to Objective Health",
  "objectiveHealthResponse": { /* response from Objective Health */ }
}