You’re right—this is a little confusing.
If you want to pass a single value, such as
maxRecords, you’ll supply it as a normal query parameter. For example:
However, if you want to pass an array, you’ll need to append
 to the end of each key.
For example, imagine you want to list records and only include two fields: “My First Field” and “My Other Field”. You’d send query parameters like this:
If you only wanted one field, you’d still append the
Our query parsing is somewhat lenient, which is why supplying the parameter multiple times works. We recommend appending the
 in all cases so that it works when you just want to supply an array with one value.
If you can, we recommend using a client library to avoid some of this. Airtable.js is our official offering, but our API docs mention a few unofficial libraries for other languages. You can use the Airtable API URL Encoder to put together a properly-formatted request if you’re not using a library.
In any case, we’ll plan to update our docs here, because this isn’t clear.