DISCO API (1.0.0)

Download OpenAPI specification:Download

Introduction

The DISCO API provides direct communication between DISCO Ediscovery and your organization’s business intelligence solution, making it easier to see the big picture and take action on data from across your organization. With access to detailed information, you may estimate or reconcile an invoice, audit anomalies or discrepancies in your organization’s data usage, or manage data usage against a subscription cap or monthly budget. For clients who run their financial or operational analysis by aggregating data from different sources, this read-only API will enable simplified, on-demand access to DISCO Ediscovery data.

Authentication

Each request requires a DISCO issued API Key and includes CIDR block verification. Organization managers have access to the API functionality via the Settings tab, where they can add or remove IPv4 CIDR formatted trusted sources which serve as the specific IP addresses permitted to access the API. Authorized users can also be managed in the Settings tab. An API key can be created to grant access to the API for those users first at the organization level, and secondarily at the per-authorized user level. Users must submit their API Key with each request.

Rate Limits

The total of all API requests to all endpoints is limited to 100 per minute per customer organization.

URLs

All URIs listed below begin after the DNS domain name (e.g. https://api.csdisco.com). Due to the highly sensitive nature of our industry, all requests for a specific resource that would include some identifier will use POST methods and include the parameter in the body of the request.

Case-Sensitivity

URL paths and resource names are case-sensitive, e.g. /datasets/data-usage-changes, but the DNS name is case-insensitive, e.g. https://api.csdisco.com/. HTTP header parameters are case-insensitive, e.g. disco-api-key. Body parameter names are case-sensitive, e.g. start-date.

Headers

The header keys disco-api-key and organization-id must be provided by the user on every call. cURL Example

   curl --header "disco-api-key: 1234-6789/12" --header "organization-id: 01234567" https://api.csdisco.com/datasets/data-usage-changes/metadata

Request Payloads

All payloads should come in standard key/value format for all headers, and JSON format for POST body content.

Versioning

We will follow the major/minor/patch pattern for versioning.

Error Handling

All API calls return HTTP status 200 for success, or status 4xx which typically means an error by the client in forming the query, or status 5xx which means an internal error occurred.

Data Model

The endpoints listed below are arranged into 3 different types - Datasets, Metrics, and Metadata. Dataset endpoints contain collections of raw data pertaining to a specific topic, such as data-usage change events over time. Metric endpoints are singular aggregated calculations within a raw dataset, such as reviewdb size at a specific time. Metadata endpoints present either the metadata fields of a particular dataset for example or provide lists of datasets or metrics available to be utilized. The following datatypes may appear in metadata:

  Integer: currently not specified as 32-bit vs. 64-bit
  string: UTF-8
  timestamp: ISO-8601 format with timezone offset, e.g. "2023-01-01T00:00:00.000-05:00"

Endpoints

/datasets

Provides a list of the available datasets.

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Responses

Response samples

Content type
application/json
{
  • "datasets": [
    ]
}

/datasets/data-usage-changes

Between 2 datetimes, each row returns a data change event (INGEST, PROMOTION, CULL) in bytes with relevant metadata.

path Parameters
dataset-name
required
string

Name of the dataset retrieved in this query

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Request Body schema: application/json
required
start-date
required
string

DateTime (ISO-8601 format: "2023-01-01T00:00:00.000-05:00")

end-date
required
string

DateTime (ISO-8601 format: "2023-01-01T00:00:00.000-05:00")

header-row
boolean

Applicable only for text/csv. Default true

review-db
Array of strings

A list of Review UUIDs to get data for. If absent, will return data for all Review DBs in the Org

Responses

Request samples

Content type
application/json
{
  • "start-date": "2020-01-30T14:30-05:00",
  • "end-date": "2022-12-31T14:30-05:00",
  • "header-row": false,
  • "review-db": [
    ]
}

Response samples

Content type
{
  • "data-usage-changes": [
    ]
}

/datasets/data-usage-changes/metadata

Provides metadata for a dataset as a JSON object.

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Responses

Response samples

Content type
application/json
{
  • "data-usage-changes": [
    ]
}

/metrics

Provides a list of the currently supported metrics.

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Responses

Response samples

Content type
application/json
{
  • "metrics": [
    ]
}

/metrics/metric-reviewdb-size

Per requested date/time and (optional) reviewDdId, get the total size of each reviewDatabase in bytes. Each row returns the reviewDbId with its size and review_state.

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Request Body schema: application/json
required
content-type
required
string

This parameter must be provided in the HTTP headers. Valid values are [application/json, text/csv]

end-date
required
string

DateTime in ISO-8601 format, e.g. "2023-01-01T00:00:00.000-05:00"

review-db
Array of strings

[{UUID-1}, {UUID-2}]. If absent, all review databases for the given Organization-Id will be returned

Responses

Request samples

Content type
application/json
{
  • "content-type": "application/json",
  • "end-date": "2022-11-03T00:00-05:00",
  • "review-db": [
    ]
}

Response samples

Content type
{
  • "metric-reviewdb-size": [
    ]
}

/metrics/metric-reviewdb-size/metadata

Provides metadata for a dataset as a JSON object.

path Parameters
metric-name
required
string

Name of the metric to fetch

header Parameters
organization-id
required
string

from the DISCO app user interface

disco-api-key
required
string

from the DISCO app user interface

content-type
required
string

application/json,text/csv

Responses

Response samples

Content type
application/json
{
  • "name": "metric-reviewdb-size",
  • "description": "Size Metric for Review Databases",
  • "availableAttributes": [
    ],
  • "aggregations": [
    ],
  • "filterParameters": [
    ],
  • "supportedFilters": [
    ]
}