# API Overview

This section gives a broad overview of how to interact with the Grey Matter Data API.

## Structure

For a necessary introduction to the API model, see the [Structure](internals/structure) section.

## Authentication

Grey Matter Data uses JSON Web Tokens (JWT) for authentication.

To learn more, see [Authentication with JWT](https://github.com/DecipherNow/gm-gitbook-sync/tree/fdbad23611cffcdb0b6cb5d9fadb49bf146ffcaa/usage/platform-services/data/internals/authentication.md).

## Data Retrieval

Initial file listings may be accessed from the root folder with a `GET` request to the `/list/1` endpoint.

The root directory has the well-known Object ID (`oid`) of 1 by default. This directory may be accessed by all users, although its contents may only be accessed by authenticated users.

Information about Objects in the system may be retrieved through the following means: 1. [Props](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#props): Get the latest Event for a given Object 2. [List](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#list): Get all child Events for a given Object 3. [Notifications](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#notifications): Get all Events for a given Object 4. [Derived](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#derived): Get all Objects related to a given Object 5. [History](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#history): Get all Events associated with an Object

Actual file data may be extracted from the system through the following means: 1. [Stream](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#stream): As a raw byte stream through the `/stream` endpoint, used to download the Object locally. 2. [Show](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#show): As a raw byte stream within an iFrame that displays security meta data of the Object, through the `/show` endpoint, used to view the Object within the browser window. 3. [Read](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md#read): Through the `/read` endpoint which allows for bulk querying.

To learn more about data retrieval, see the [Data Retrieval](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/retrieval.md) section.

## Data Modification

The only way to modify data in Grey Matter Data is through the [Write](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/modification.md#write) endpoint.

To learn more about data modification, see the [Data Modification](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/modification.md) section.

## Utilities

Additional utility endpoints are available. See the [Utility Endpoints](https://github.com/DecipherNow/gm-gitbook-sync/tree/8370bc838d1c2371e77a8022efc393674bd356d3/usage/platform-services/data/api/utiltiies.md) section.
