# Best practices

#### Response type

The InEvent API will always give you a consistent `response` when successful and a `bodiless` response in case it fails. Here is an example of a successful response:

```json
{
  "count": 1,
  "data": [
    {
      "personID": "1",
      "firstName": "Mauricio",
      "lastName": "Giordano",
      "name": "Mauricio Giordano",
      "username": "giordano@inevent.com",
      "email": "giordano@inevent.com",
      "image": "",
      "timezone": "",
      "telephone": "",
      "facebookID": "",
      "linkedInID": "",
      "twitterID": "",
      "date": "1593719050",
      "tokenID": "YOUR_TOKEN_HERE",
      "scope": "system",
      "targetID": "0"
    }
  ]
}
```

And here is an example of a unsuccessful one:

```
400 attribute cannot be empty
```

#### Pagination

To paginate on `.get` and `.find` endpoints, you must use the `limit` and `offset` query attributes. The `limit` query attribute is set to **20** by default and can go up to **100**. The `offset` query attribute is an integer that describes the index of the last item on the previous page.

#### Rate limit

You might get blocked if you exceed **10** API calls per second on a single `tokenID` or **100** API calls per second on the same machine.
