---
title: "Submit a provider or hospital update request for Loa review"
method: POST
path: "/entity-updates"
---

# Submit a provider or hospital update request for Loa review

`POST /entity-updates`

Creates a pending reviewed update request from a public form, API client, or agent. A provider API key is optional; Loa never changes public runtime data until staff approve the request.

## Request body

- EntityUpdateRequest
  - `entity_page_id` string, uuid
  - `entity_slug` string
  - `entity_type` 'hospital' | 'provider' | 'unknown'
  - `submitter_email` string, email, required
  - `submitter_name` string
  - `submitter_organization` string — Provider, hospital, or agent organization represented by the submitter.
  - `submitter_role` string
  - `submitter_phone` string
  - `source_urls` string[] — Public URLs reviewers can use to verify the submitted change.
  - `source_notes` string — Short verification notes, source context, or callback instructions.
  - `attestation` 'provider_representative' | 'authorized_agent' | 'public_source' | 'other' — How the submitter is connected to the submitted evidence.
  - `request_type` 'price_update' | 'profile_correction' | 'new_listing' | 'remove_listing' | 'other', required
  - `proposed_changes` object — Structured proposed changes. Serialized JSON must be 25 KB or less.
  - `uploaded_file_url` string, uri
  - `idempotency_key` string — Optional stable retry key. Loa derives one from the payload if omitted.
  - `price_items` EntityUpdatePriceItem[]
    - `cpt_code` string, required — 5-digit CPT code or HCPCS Level II code.
    - `code_type` string
    - `service_name` string
    - `price_kind` 'cash' | 'discounted_cash' | 'package_cash' | 'payer_negotiated'
    - `proposed_price_cents` integer
    - `payer_name` string
    - `plan_name` string
    - `setting` string
    - `billing_class` string
    - `component` 'global' | 'professional' | 'facility' | 'unknown'
    - `included_services` string[]
    - `exclusions` string
    - `price_notes` string

## Response `200`

Existing idempotent request returned.

- EntityUpdateResponse
  - `request_id` string, required
  - `update_request_id` string, uuid, required
  - `entity_page_id` string, uuid, nullable
  - `status` string, required
  - `reused_existing` boolean, required

## Other responses

- `201` — Update request created.
- `400` — UpdateRequestValidationFailed.
- `401` — ApiClientUnauthorized.
- `403` — ApiClientDisabled or ApiClientScopeDenied.
- `404` — EntityNotFound.
- `429` — ApiRateLimited.

---

[API](https://skmtc.net/loacare/apis/loa-healthcare-pricing-api.md) · [All operations](https://skmtc.net/loacare/apis/loa-healthcare-pricing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/loacare/loa-healthcare-pricing-api/revisions/daa3a7e12b1e/schema)
