Skip to main content
photon project compliance call-registry manages a project’s Call Registry profile, its automatic-registration setting, and the registration of individual phone numbers. It is the first product under the project compliance namespace. Browse the automatic command reference. Every command uses the standard project selection order.

Set the profile

profile set creates or completely replaces the profile.
In an interactive terminal, omit --profile-file:
The builder groups fields into four sections, validates each answer as you go, retries invalid fields with a specific explanation, uses numbered menus for call purpose and volume, and shows a review before the final confirmation. Contact email and phone are masked in that review.
The CLI never accepts profile fields as command-line arguments, which keeps them out of shell history and process listings. Profile input is never written to the operation journal.
companyAddressLine2, explanation, and secondContactEmail are optional. Everything else is required.
The same validation applies to interactive, file, stdin, and patch input: HTML-like markup, control and format characters, unknown fields, invalid JSON, and documents larger than 16 KiB are rejected locally. profile set requires confirmation because it replaces the whole profile. profile edit accepts any non-empty subset of the same fields and does not confirm.
The patch contract cannot explicitly clear an optional field. To remove one, use profile set with a complete document that omits it.

Automatic registration

status is read-only. enable and disable confirm unless you pass --force and accept an optional --idempotency-key. All three first check that the project has a Call Registry profile, and the mutating pair skip the write when the setting already holds the requested value.
Enabling automatic registration affects only phone numbers provisioned after it is enabled. It does not register numbers you already have — use registration start for those.

Register phone numbers

Start registration for 1 to 20 unique canonical pho_res_ resource IDs. Repeat --resource-id for each:
Submission is asynchronous and requires confirmation. A success returns a pho_crg_ registration ID. The CLI does not poll — check progress yourself:
Filters use the lowercase statuses pending, awaiting_verification, verifying, submitting, registered, failed, and unknown. JSON keeps the API’s raw CALL_REGISTRATION_STATUS_* values; human output strips the prefix. Lists default to 30 results and accept up to 1,000. Provider-specific references are omitted from output. Failure codes are normalized to verification_exhausted, registration_rejected, submission_outcome_unknown, legacy_registration_failed, or registration_failed.
The API exposes no delete, cancel, or retry route. Resolve a failed registration using its failure details or Photon support guidance.

Idempotency and private data

All four mutations accept --idempotency-key, and the CLI generates a UUIDv4 when you omit one. Profile replacement and edits stay out of the local journal because their bodies contain private profile data. If a profile request’s result is uncertain, check the current profile, then repeat the exact input with the key from the error. Automatic-registration updates and registration starts do use the journal. Their saved input contains only the project ID, the boolean config value, and canonical pho_res_ resource IDs — never profile fields or phone numbers. Re-running an unresolved command with the same key and input continues it automatically, and photon operation replay <operation-id> also recovers it. See Recoverable operations. Complete profile request and response bodies are redacted from --debug traces, along with phone numbers, registration feedback, and personal fields. Keep profile files private and delete temporary copies according to your organization’s retention policy.
The four mutation routes send Idempotency-Key.