> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nordicfinancialnews.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Invalid parameter

> The 400 problem type returned when a query parameter is unusable, naming it in a parameter member.

<Info>
  Problem type: `https://docs.nordicfinancialnews.com/problems/invalid-parameter`
</Info>

The API returns this problem type with HTTP `400` when one of your query parameters cannot be used. It is the most specific of the error types: the response names the parameter at fault in its own `parameter` member, and `detail` explains what was wrong with it.

## Example response

```json theme={"dark"}
{
  "type": "https://docs.nordicfinancialnews.com/problems/invalid-parameter",
  "title": "Invalid parameter",
  "status": 400,
  "detail": "Unknown content type 'blog'. Valid values: news, analysis, press_release, market_commentary, market_news, trading_halt, trading_event, other",
  "parameter": "content_type",
  "instance": "urn:request:7f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c"
}
```

`parameter` is an extension member on top of the standard [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) fields. Read it rather than parsing `detail`: it is a bare parameter name, stable enough to switch on, whereas `detail` is prose that can be reworded.

## What triggers it

Four shapes of mistake, all reported the same way:

* **An unrecognized value for a fixed-list filter.** `content_type`, `sector`, `status`, `event_type`, `sentiment` and `sort` all validate against a known set, and `detail` lists the accepted values. Company filters such as `ticker` behave the same way, naming every value that failed to resolve.
* **Two parameters that cannot be combined.** `cursor` with `q`, `mode=semantic` with `cursor`, `sort` or `updated_after`, `ids` with `cursor`. `detail` says which pairing was rejected and why.
* **A parameter missing its companion.** `mode=semantic` and `sort=relevance` both need `q`, since neither ranking is defined without a query.
* **A cursor that is invalid or expired.** Cursors are opaque and time-limited. Restart the walk from the first page rather than editing one by hand.

Not every unusable value produces this error. Some filters ignore what they do not recognize and return an empty page instead, which is a different failure to debug. [Error handling](/guides/errors#400-bad-request) sets out which filters validate strictly and which drop silently.

## How to fix it

Fix the request. There is nothing to retry, and repeating an identical call returns an identical error while still counting against your rate limit and monthly quota.

Read `parameter` to find the offending value in your request builder, then `detail` for the accepted values. If the parameter looks correct, check it is spelled as the API expects and that you are sending it to an endpoint that accepts it: a parameter that is valid on one resource is not automatically valid on another, and a company-scoped path rejects filters the flat equivalent accepts.

## Related

* [Error handling](/guides/errors) for the full problem type list
* [Pagination](/guides/pagination) for how cursors are issued and when they expire
* [Field projection](/guides/field-projection) for selecting fields, which rejects unrecognized names under a different problem type
