## Response Format
Kantata OX API responses come back as JSON.  All GET responses will be of a format similar to the following:

```json
{
  "count": 2,
  "results": [{ key: "workspaces", id: "10" }, { key: "workspaces", id: "11" }],
  "workspaces": {
    "10": {
      id: "10",
      title: "some project",
      participant_ids: ["2", "6"],
      primary_counterpart_id: "6"
    },
    "11": {
      id: "11",
      title: "another project",
      participant_ids: ["2", "8"],
      primary_counterpart_id: "8"
    }
  },
  "users": {
    "2": { id: "2", full_name: "bob" },
    "6": { id: "6", full_name: "chaz" },
    "8": { id: "8", full_name: "jane" }
  }
}
```
As you can see, Kantata OX API responses can return multiple data types simultaneously, transferring objects and their associations in a single response.  In this example, the developer has likely requested the `/workspaces.json` endpoint, asking for inclusion of those workspaces' participants and primary counterparts.  These associations have come back in the top-level object called `users`.  The developer should always use the returned `results` array to retrieve the canonical results from an API request.  This is because some objects may have associations of the same type and can thus be mixed together with their associations in the JSON.  For example, stories (tasks) have sub_stories which are the same type of object, so looking directly at the returned `stories` key when stories have been requested to include their sub_stories will be confusing and will include both.  Instead, iterate the `results` key to determine exactly which top-level objects matched your query and in what order.
The follow sections explain how to customize further the Kantata OX API responses to your needs.
