success: false and an error object. Use error.code for application logic and error.message for troubleshooting. Some errors include error.details.
Common errors
Endpoint references document their specific validation and business errors. These responses apply across the API:
Use Verify API Access to diagnose authentication, scope, and firewall problems. If you need support, provide the request time, method, endpoint, status, and error code. Do not send API secrets, credentials, or client data.
Accepted does not mean completed
Service creation, plan changes, cancellations, and request approvals can continue after the HTTP response. Both200 and 202 can represent accepted work. Read the endpoint’s response fields, not just its HTTP status.
- Save the returned
request_idandservice_numberwhen present. - Use List Requests to check the request and List Services or Get Service to check the service. Credential-bearing reads require
admin:full. - Do not submit a second operation when the response indicates processing or
nycservers_review. An approved request does not necessarily mean the related service work has finished.
Retry writes safely
Use a uniqueX-Idempotency-Key for each intended operation on the endpoints below. Keep the same key and input when retrying that operation. Use a new key only for genuinely new work.
Service creation
Create Service uses the key to recognize an earlier submission for your broker. A repeat can return the saved result or a202 processing/review response. Without this header, each call receives a new key and can create a separate request.
Do not reuse a creation key with changed client or plan data. Creation does not validate a payload fingerprint before replaying the earlier result, so a changed body can still receive that result.
Plan changes and cancellation
Upgrade, Downgrade, and Cancel Service accept the header when queuing work. They otherwise derive a key from the related request. An incompatible queued action payload can return409 idempotency_conflict.
Check the existing request before retrying. Do not change the key to bypass a conflict or an operation already in progress.
Request approval
Manage Request accepts the header for approvals and otherwise derives a key from the request. It is not a guarantee that every repeat returns the original response: a request that is no longer pending can return409 already_processed. The header is not used for denials.

