Use filter, unless you are an internal MET user who knows how kafka works.
More details: In version 1 there are now two endpoints from which you can get observations: filter and kvkafka. Most people should use filter, because it will return only the recommended timeseries. However, some internal MET users may want to use kvakfa in order to chose very specific timeseries (e.g. specific time offsets).
You have to use the request parameters hdrcsv and obscsv.
You can set incobs=False (no observation data, just metadata),
define a (geo)location parameter (e.g. location or stationcounties or polygon), set the time parameter and include the elements (e.g. air_temperature) you want the stations to be measuring. Example using a URL:
Get a list of stations (metadata, without observations) in the county of Vestland measuring wind between 2021-01-01 00:00:00 UTC and 2022-01-01 00:00:00 UTC
https://frost-beta.met.no/api/v1/obs/met.no/filter/get?incobs=false&time=2021-01-01T00:00:00Z%2F2022-01-01T00:00:00Z&elementids=wind%2A&stationcounties=vestland
You can expand this example with more/other request parameters you want to include, for example if you want the wind measurements at 10m above ground only you can set the levels parameter to 10.
There can be multiple sensors at a station that send the same data, for instance air_temperature can have 2 values but one is taken at a height of 2m and the other is taken at a height of 10m.
The request URL should not contain any spaces, so in element names like max(air_temperature P1D) an escape character should be used (%20). You have not encoded the client ID and secret and inserted it into the request header correctly (this should usually result in a 401 error code).