Network
APIs for managing network entities
List networks for a tenant
Returns a paginated list of networks scoped to the tenant identified by the `tenant-id` header. Results are sorted by creation date, newest first, using offset-based pagination. Use this endpoint to browse or search all networks for a tenant; to fetch a single known network by ID use `GET /networks/{id}` instead. Requires the `READ_NETWORK` permission. Returns 200 with an empty `records` list when the tenant has no networks.
Create a new network
Creates a new network record for the tenant identified by the `tenant-id` header. The request body's `data` object is validated against the Network JSON schema; currently the only recognized field is `name` (string), with an optional `contractId` also nested inside `data` — no other properties are accepted, and none are required. Requires the `CREATE_NETWORK` permission. On success, returns the created network with its server-assigned ID.
Set practitioner network enrollment start date
Sets the start date of a practitioner's enrollment in a network group, identified by `networkId` and `tenantGroupPractitionerId` in the request body. `effectiveDate` must not be later than the enrollment's existing termination date, or a 400 is returned. This operation is idempotent (upsert semantics). Use this endpoint to set the enrollment start date only; to update specialty-level dates use `PUT /networks/{networkId}/groups/{groupId}/practitioners/{practitionerId}/specialties/{specialtyId}/dates` instead. Requires the `UPDATE_NETWORK` permission.
Update an existing network
Replaces the network record identified by `id` for the tenant identified by the `tenant-id` header. The request body's `data` object is validated against the same Network JSON schema used on create; currently the only recognized field is `name` (optional). The network must already exist. Requires the `UPDATE_NETWORK` permission. On success, returns the updated network with HTTP 201.
Retrieve a single network by ID
Returns the full network record identified by `id`, scoped to the tenant identified by the `tenant-id` header. Use this endpoint when the network ID is already known; to browse all networks for a tenant use `GET /networks` instead. Requires the `READ_NETWORK` permission.
Delete a network by ID
Permanently removes the network identified by `id` for the tenant identified by the `tenant-id` header. This is a hard delete with no soft-delete/undo — the record cannot be recovered afterward. Deletion does not cascade: a network that is still referenced by a group, practitioner, location, or plan association cannot be deleted until those associations are removed first. Requires the `DELETE_NETWORK` permission. On success, returns 204 with no response body.
Update practitioner specialty dates in a network group
Updates the effective date and/or termination date for a practitioner's specialty participation within a network group, identified by networkId, groupId, practitionerId, and specialtyId in the path. `effectiveDate` is required; `terminationDate` is optional but must not precede `effectiveDate`. This operation has cascade side effects: when `applyToAllAssociatedNetworksAndPlans` is true (default when omitted), the dates are propagated to associated plan specialties across all of the practitioner's network enrollments in the group; when `applyToAllAssociatedLocations` is true (default when omitted), they are also propagated to location-network specialties. Use this endpoint for specialty-level date management; to set a practitioner's overall network enrollment start date use `PUT /networks/practitioners/effective-date` instead. Requires the `UPDATE_PRACTITIONER` permission.