Input errors — missing or invalid values
Updated 2026-11-13
A call answers HTTP 400 with "Missing required parameters" or "Parameter validation failed". This page shows how to read the details and correct the call.
What you see
Both errors answer HTTP 400. Nothing is calculated; correct the values and call again.
"error" | Means | Where the details are |
|---|---|---|
Missing required parameters | At least one required input was not sent, or was sent empty. | details.required |
Parameter validation failed | At least one value has the wrong type, is out of range or is not an allowed value. | details.errors |
Required inputs are checked first. If one is missing, you get only "Missing required parameters"; the values are checked on the next call.
"Missing required parameters"
{
"error": "Missing required parameters",
"message": "The following required parameters are missing: Amount",
"details": { "required": [ { "name": "amount", "title": "Amount" } ] }
}Causes, most likely first:
- The input was left out. Send every input listed in
details.required. Use thenameas the key. - The input was sent empty. An empty text (
"") ornullcounts as missing for a required input. - The key is spelled differently. Names are matched without regard to upper and lower case, and underscores, spaces and hyphens are ignored, so
Loan_Amountandloanamountare the same. A different word is a different input. - On POST the values are not inside `"inputs"`. The body must be
{"inputs": {"amount": 1000}}. - The owner made the input required. If you own the service and the input should be optional, change it and republish: see Input validation.
"Parameter validation failed"
{
"error": "Parameter validation failed",
"message": "1 parameter(s) failed validation",
"details": {
"errors": [
{ "name": "discount", "title": "Discount", "type": "above_maximum", "error": "Value 4 is above maximum 0.5", "max": 0.5, "value": 4 }
]
}
}Each entry of details.errors names one input and one reason:
type | Text in error | Fix |
|---|---|---|
type_mismatch | Expected a number, got: abc | Send a number. Use a point as the decimal separator and no thousands separator: 1234.5. |
type_mismatch | Expected a boolean, got: maybe. Accepted values: true/false, yes/no, 1/0, wahr/falsch, ja/nein | Send one of the accepted values. |
below_minimum | Value 5 is below minimum 1000 | Send a value at or above min. |
above_maximum | Value 4 is above maximum 0.5 | Send a value at or below max. For percentages see below. |
invalid_enum_value | Value "Gold" is not allowed. Allowed values: Basic, Plus | Send one of allowedValues. Text is compared without regard to upper and lower case unless the entry says caseSensitive: true. |
Percentages: the most common cause
A percentage input expects a decimal: 0.05 for 5 %. "Value 5 is above maximum 1" almost always means that 5 was sent for 5 %.
- Send
0.05. This always works. - An input that is formatted as a percentage in the workbook also accepts the text
"5%"with a percent sign; use this form for more than 100 %, for example"150%".
Details: Percentages and formats.
What is not an error
- An optional input that is left out. It takes its default value, or the value the cell has in the published workbook.
- Extra keys. A key that matches no input of the service is ignored. If a value seems to have no effect, check the spelling of its key.
- Text in a number input that is a number.
"1000"is accepted and read as 1000.
If you own the service
The limits come from your own settings of each input: required or optional, minimum, maximum and allowed values. Change them in the parameter panel, Save (Speichern) and republish. See Input validation and Publish and republish.
To find out which callers send invalid values, open Usage → Log (Nutzung → Protokoll): each refused call shows its error text and who called. See The call log.
For developers and agents
- Status: always HTTP 400 on the API. Fields:
error,message,serviceId,inputs(what was sent),details. details.required[]:name,title.details.errors[]:name(the key to send),title,parameter(the title),type,error(the sentence), and depending on the typemin,max,value,allowedValues,receivedValue,expectedType,caseSensitive.- Order of checks: required inputs → type, range and allowed values of every sent value. All invalid values of one call are reported together.
- Accepted booleans:
true/false,yes/no,y/n,t/f,1/0,wahr/falsch,ja/nein,j. - GET: a query value is read as a boolean (
true,false), else as a number if it is one, else as text. An empty value counts as not sent. - Discovery address and MCP: the same checks, answered as one sentence. Missing inputs:
Missing required parameters. Missing required input(s): amount, rate. Add these keys and retry.Invalid values:Parameter validation failed: discount: Value 4 is above maximum 0.5. - For an agent: fix exactly the inputs named, keep the others, and call again once. If a required value is not known, ask the user instead of inventing one.
FAQ
What does "Missing required parameters" mean?
A required input was not sent or was sent empty. details.required lists the missing inputs; send each one under its name and call again.
What does "Parameter validation failed" mean?
At least one value has the wrong type, is outside the minimum or maximum, or is not one of the allowed values. details.errors names each input with the reason.
I sent the value, why does it say it is missing?
Most often the key is a different word than the input's name, the value is empty, or a POST body does not wrap the values in "inputs". Compare your keys with the names in details.required.
What does "Value 5 is above maximum 1" mean for a percentage?
The input expects a decimal, so 5 % is 0.05, not 5. Send 0.05 and call again.
What does "Expected a number, got: …" mean?
The input is a number and the value you sent cannot be read as one, for example 1.234,50 or ten. Send plain digits with a point as the decimal separator, such as 1234.5.
What does "is not allowed. Allowed values: …" mean?
The input accepts only the listed values and yours is not one of them. Send one of the values after "Allowed values:"; upper and lower case do not matter unless the owner made the list case-sensitive.
Are input names case-sensitive?
No. Amount, amount and AMOUNT are the same input, and underscores, spaces and hyphens in a key are ignored.
What happens if I leave out an optional input?
The call works. The input takes its default value, or the value its cell has in the published workbook.
Does the answer list all wrong values or only the first?
All of them: details.errors has one entry per invalid value of the call. Missing required inputs are reported first and on their own, so a call may need two corrections.
Can I change the minimum, maximum or allowed values?
Yes, if you own the service: edit the input in the parameter panel, save and republish. See Input validation.
How does an AI assistant see these errors?
As one sentence that names the input key and the reason, for example "Parameter validation failed: discount: Value 4 is above maximum 0.5". The assistant can correct the value and call again.