# Requests and responses # Requests ## Array query parameters Array query parameters should be passed using the following syntax: `name[]=value1&name[]=value2` Note that in case of an array containing a single value the syntax is `name[]=value`. The syntax `name=value` will not be accepted. ## Object query parameters Object query parameters should be passed using the following syntax: `location[latitude]=value&location[longitude]=value` ## Request body All API request bodies should contain JSON strings where relevant and should be accompanied by the corresponding `Content-Type: application/json` header. # Responses ## Response body All successful API response bodies (having a response code 2xx) will contain a `data` object where the actual results of the request can be found. Endpoints that support [pagination](../topic/topic-pagination) will also contain a `meta` object where pagination data can be found. In case of a non-successful response, the response body will contain an `errors` array. ## Error response codes A `400` response code indicates a malformed request. The request should not be retried without changes. A `401` response code indicates an unauthorized request. This response can be expected when the `Authorization` header value is invalid, expired or missing. The request should not be retried with the same `Authorization` header value. A `403` response code indicates a forbidden request. The provided `Authorization` header value is valid but the request is prohibited due to other permission restrictions (e.g., missing scopes or organizational settings). A `404` response code indicates a resource that cannot be found. This response code will be returned in case of a non-existent URL being used or a non-existent resource ID being used in a valid URL structure. A `405` response code indicates that the HTTP method being used is not supported for the target URL. The request should not be retried without changes. A `409` response code indicates a conflict, caused by concurrent operations, that resulted in a situation where the requested operation could not be performed simultaneously with another operation. The request can be retried without changes but will most likely result in another error response code. A `422` response code indicates a failed business validation. More information on the business validation concerned can be found in [Error codes](../topic/topic-error-codes) by looking up the specific error code mentioned in the `errors` array in the response body. A `429` response code indicates that too many requests were sent in a given amount of time. See [Rate limiting](../topic/topic-rate-limiting). Any other response code can be considered unexpected and can be reported to [support_engage@pexip.com](mailto:support_engage@pexip.com).