/v1/end-user-jwt

Enable a user to start new conversations and send messages

Re-enable a previously-disabled user. The user moves out of read-only mode and can again start new conversations and send messages in the embedded iFrame or WebView app.

Pass access_expires_at to set a specific expiry (e.g., aligned with a subscription period). Omitting it sets the user to never expire.

Organizations with trial access. Counsel sets the expiry instead of using access_expires_at. The first rule that matches applies:

  1. Active subscription: re-enabled with no expiry.
  2. Trial still running: re-enabled until the trial's original end date. Time spent disabled is not added back.
  3. Trial ended and no active subscription: not re-enabled. The request returns 409 with code trial_expired. The disable is still lifted, so the user can subscribe to get access back.
post/v1/user/enable/

Request

  • Base URL
    https://api.counselhealth.com (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Headers

Idempotency-Keystring
Example:550e8400-e29b-41d4-a716-446655440000

Optional idempotency key. Repeat requests with the same key and body return the original result.

Request body

access_expires_atstring date-time nullable required

datetime in ISO 8601 format

Example request

{
  "access_expires_at": "2030-01-01T00:00:00Z"
}

Response

Default Response

idstring uuid required
created_atstring date-time required

datetime in ISO 8601 format

first_namestring required
last_namestring required
preferred_namestring nullable
dobstring required

date of birth in YYYY-MM-DD format (ISO 8601)

phonestring nullable

US phone number. Supported formats: 8007006000, 800-700-6000, +1 800-700-6000, +18007006000, +1(800)7006000, (800)700-6000

sex_assigned_at_birth'Male' | 'Female' required
gender'Male' | 'Female' | 'Other' nullable
racestring[] nullable
access_expires_atstring date-time nullable

datetime in ISO 8601 format

emailstring email nullable

email address

metadataobject nullable

Custom key-value metadata for external users. Max 25 keys, each value ≤ 1800 characters. Keys must be alphanumeric with underscores/hyphens only.

onboarded_atstring date-time nullable

datetime in ISO 8601 format

external_idstring nullable

Client-supplied stable identifier for this user, unique within your organization. Can be used in place of the Counsel user ID on GET/PATCH /v1/user/{id}.

id_verifiedboolean nullable

Whether this user's identity has been verified. Sending true requires your organization to be granted API identity verification by Counsel support; otherwise the request fails with 403.

status'success' required

Example response

{
  "created_at": "2030-01-01T00:00:00Z",
  "dob": "1990-01-01",
  "phone": "+18007006000",
  "addresses": [
    {
      "line1": "123 Main St",
      "line2": "Apt 2",
      "city": "San Francisco",
      "state": "CA",
      "zip": "12345"
    }
  ],
  "race": [
    "White",
    "Asian"
  ],
  "medical_profile": {
    "conditions": [
      "Diabetes"
    ],
    "medications": [
      "Metformin"
    ],
    "medication_allergies": [
      "Tylenol"
    ],
    "surgeries": [
      "Appendectomy"
    ],
    "family_history": [
      "Diabetes"
    ],
    "doctors": {
      "pcp_name": "Dr. Joe Doe",
      "specialist_types": [
        "Cardiologist"
      ]
    },
    "additional_details": {}
  },
  "access_expires_at": "2030-01-01T00:00:00Z",
  "email": "john.doe@example.com",
  "metadata": {
    "plan": "pro",
    "external_id": "1234567890"
  },
  "onboarded_at": "2030-01-01T00:00:00Z",
  "external_id": "01ARZ3NDEKTSV4RRFFQ69G5FAV"
}

Changes

No recorded changes to this operation across all 1 revision of this API.