schemaId on POST /v1/requests to invoke it.
Two endpoints make request creation self-service: discover the schemas your account is provisioned for, and look up the input keys each one needs.
| Endpoint | Purpose |
|---|---|
GET /v1/schemas | List the schemas owned by the account associated with your API key. |
GET /v1/schemas/{schemaId}/required-inputs | Return the input keys required to submit a request against a given schema. |
{error, message, [details]} envelope (see Errors).
List your schemas
Response
| Field | Type | Notes |
|---|---|---|
schemaId | string | Pass to POST /v1/requests as schemaId. |
name | string | Human-readable label. Falls back to the schemaId when no name is set. |
requestType | string | The kind of extraction this schema produces (e.g. claim-status, vob). Server-derived — useful for filtering the list, but you don’t pass it on POST /v1/requests. It surfaces on RequestResponse.requestType after the request runs. |
Look up required and optional inputs
Once you have aschemaId, fetch the input keys it accepts. The response carries two sorted, disjoint lists: requiredInputs.fields (must be supplied or you get INVALID_INPUTS) and optionalInputs.fields (accepted but not required — useful for “build a request” forms that want to surface every accepted key).
Response
POST /v1/requests validator expects in inputs. If SuperDial updates the schema, call this endpoint again (or refresh your cache) before relying on a fixed list in code.
If your account is enabled for payer-phone resolution,
phoneNumber moves out of requiredInputs.fields and into optionalInputs.fields for this endpoint — because you can omit it and let SuperDial fill it in from payerName. With resolution off (the default), phoneNumber stays required.If your account is enabled for per-payer required inputs, some payers require additional inputs that aren’t listed here. Treat this list as the baseline — a request for one of those payers may need more.
End-to-end discovery flow
POST /v1/requests — pass the schemaId and populate every key in required inside the inputs object. The requestType is server-derived; you’ll see it on the response.
Errors
Every non-2xx response uses the uniform envelope:| HTTP code | error code | When |
|---|---|---|
400 | INVALID_REQUEST | The schemaId path parameter was empty, contained /, started with _ or ., or exceeded 1500 characters. Only applies to the required-inputs endpoint. |
401 | (gateway envelope) | Bearer token missing, malformed, or expired. The gateway uses {code, message}, not the envelope above. |
404 | SCHEMA_NOT_FOUND | No schema with that ID exists for your account, or it has been retired and is no longer accessible. |
404 | ACCOUNT_NOT_FOUND | The API key resolves to an account that no longer exists. Contact support. |
500 | INTERNAL_ERROR | Unexpected server failure. Retry once; escalate if persistent. |