Edgewise GraphQL API (beta)
The Edgewise API is organized around GraphQL. GraphQL offers significantly more flexibility for our integrators. The ability to define precisely the data you want—and only the data you want—is a powerful advantage over a conventional REST API. GraphQL lets you replace multiple REST requests with a single call to fetch the data you specify.
Caveat emptor, this API is still in beta, and subject to change (backwards incompatible).
Authentication
Authentication to the API is performed via JSON Web Tokens (JWT). Provide your API key as the value for the Authorization header in every request. You do not need to log in, and you do not need to provide a password.
Any requests without authentication will fail.
Permissions
Your account is assigned to one/many "organizations". These organizations are associated with project, and are given a "role". The role an organization has on a project determines the level of permissions the user has to create/retrieve/update/delete (CRUD).
For instance, the SELLER role can change the name of a project, but the BUILDER role cannot. The SELLER role can change the price of a unit, but the BUILDER role cannot. Both the SELLER and the BUILDER roles can change a unit's construction phase (eg. framing).
If an organization you are apart of is the builder on one project, and the seller on another, then you'd have builder permissions on the first project, and seller permissions on the second.