priv/docs/dlp_datasets.md

# DLP Datasets

## Create a new dataset

**POST** `/accounts/{account_id}/dlp/datasets`



### Responses

#### 200 Dataset created successfully.

> Data is at `body["result"]`

```json
{
  "dataset": {
    "case_sensitive": "*boolean*",
    "columns": [
      {
        "entry_id": null,
        "header_name": null,
        "num_cells": null,
        "upload_status": null
      }
    ],
    "created_at": "*string*",
    "description": "*string*",
    "encoding_version": "*integer*",
    "id": "*string*",
    "name": "*string*",
    "num_cells": "*integer*",
    "secret": "*boolean*",
    "status": "*string*",
    "updated_at": "*string*",
    "uploads": [
      {
        "num_cells": null,
        "status": null,
        "version": null
      }
    ]
  },
  "encoding_version": "*integer*",
  "max_cells": "*integer*",
  "secret": "*string*",
  "version": "*integer*"
}
```

#### 4XX Dataset creation failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Fetch all datasets

**GET** `/accounts/{account_id}/dlp/datasets`



### Responses

#### 200 Datasets read successfully.

> Data is at `body["result"]`

```json
[
  {
    "case_sensitive": "*boolean*",
    "columns": [
      {
        "entry_id": null,
        "header_name": null,
        "num_cells": null,
        "upload_status": null
      }
    ],
    "created_at": "*string*",
    "description": "*string*",
    "encoding_version": "*integer*",
    "id": "*string*",
    "name": "*string*",
    "num_cells": "*integer*",
    "secret": "*boolean*",
    "status": "*string*",
    "updated_at": "*string*",
    "uploads": [
      {
        "num_cells": null,
        "status": null,
        "version": null
      }
    ]
  }
]
```

#### 4XX Datasets read failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Update details about a dataset

**PUT** `/accounts/{account_id}/dlp/datasets/{dataset_id}`



### Responses

#### 200 Dataset updated successfully.

> Data is at `body["result"]`

```json
{
  "case_sensitive": "*boolean*",
  "columns": [
    {
      "entry_id": "*string*",
      "header_name": "*string*",
      "num_cells": "*integer*",
      "upload_status": "*string*"
    }
  ],
  "created_at": "*string*",
  "description": "*string*",
  "encoding_version": "*integer*",
  "id": "*string*",
  "name": "*string*",
  "num_cells": "*integer*",
  "secret": "*boolean*",
  "status": "*string*",
  "updated_at": "*string*",
  "uploads": [
    {
      "num_cells": "*integer*",
      "status": "*string*",
      "version": "*integer*"
    }
  ]
}
```

#### 4XX Dataset update failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Fetch a specific dataset

**GET** `/accounts/{account_id}/dlp/datasets/{dataset_id}`



### Responses

#### 200 Dataset read successfully.

> Data is at `body["result"]`

```json
{
  "case_sensitive": "*boolean*",
  "columns": [
    {
      "entry_id": "*string*",
      "header_name": "*string*",
      "num_cells": "*integer*",
      "upload_status": "*string*"
    }
  ],
  "created_at": "*string*",
  "description": "*string*",
  "encoding_version": "*integer*",
  "id": "*string*",
  "name": "*string*",
  "num_cells": "*integer*",
  "secret": "*boolean*",
  "status": "*string*",
  "updated_at": "*string*",
  "uploads": [
    {
      "num_cells": "*integer*",
      "status": "*string*",
      "version": "*integer*"
    }
  ]
}
```

#### 4XX Dataset read failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Delete a dataset

**DELETE** `/accounts/{account_id}/dlp/datasets/{dataset_id}`

This deletes all versions of the dataset.

### Responses

#### 200 Dataset deleted successfully.

> Data is at `body["result"]`

```json

```

#### 4XX Dataset delete failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Prepare to upload a new version of a dataset

**POST** `/accounts/{account_id}/dlp/datasets/{dataset_id}/upload`



### Responses

#### 200 Dataset version created successfully.

> Data is at `body["result"]`

```json
{
  "case_sensitive": "*boolean*",
  "columns": [
    {
      "entry_id": "*string*",
      "header_name": "*string*",
      "num_cells": "*integer*",
      "upload_status": "*string*"
    }
  ],
  "encoding_version": "*integer*",
  "max_cells": "*integer*",
  "secret": "*string*",
  "version": "*integer*"
}
```

#### 4XX Dataset version creation failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Upload a new version of a dataset

**POST** `/accounts/{account_id}/dlp/datasets/{dataset_id}/upload/{version}`

This is used for single-column EDMv1 and Custom Word Lists. The EDM format
can only be created in the Cloudflare dashboard. For other clients, this
operation can only be used for non-secret Custom Word Lists. The body must
be a UTF-8 encoded, newline (NL or CRNL) separated list of words to be matched.

### Responses

#### 200 Dataset version uploaded successfully.

> Data is at `body["result"]`

```json
{
  "case_sensitive": "*boolean*",
  "columns": [
    {
      "entry_id": "*string*",
      "header_name": "*string*",
      "num_cells": "*integer*",
      "upload_status": "*string*"
    }
  ],
  "created_at": "*string*",
  "description": "*string*",
  "encoding_version": "*integer*",
  "id": "*string*",
  "name": "*string*",
  "num_cells": "*integer*",
  "secret": "*boolean*",
  "status": "*string*",
  "updated_at": "*string*",
  "uploads": [
    {
      "num_cells": "*integer*",
      "status": "*string*",
      "version": "*integer*"
    }
  ]
}
```

#### 4XX Dataset version upload failed.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Sets the column information for a multi-column upload

**POST** `/accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}`

This is used for multi-column EDMv2 datasets. The EDMv2 format can only be
created in the Cloudflare dashboard. The columns in the response appear in
the same order as in the request.

### Responses

#### 200 Dataset columns created successfully.

> Data is at `body["result"]`

```json
[
  {
    "entry_id": "*string*",
    "header_name": "*string*",
    "num_cells": "*integer*",
    "upload_status": "*string*"
  }
]
```

#### 4XX Failed to create dataset columns.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Upload a new version of a multi-column dataset

**POST** `/accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}/entries/{entry_id}`

This is used for multi-column EDMv2 datasets. The EDMv2 format can only be
created in the Cloudflare dashboard.

### Responses

#### 200 Dataset column uploaded successfully.

> Data is at `body["result"]`

```json
{
  "entry_id": "*string*",
  "header_name": "*string*",
  "num_cells": "*integer*",
  "upload_status": "*string*"
}
```

#### 4XX Failed to upload dataset column.

```json
{
  "errors": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "documentation_url": "*string*",
      "message": "*string*",
      "source": {
        "pointer": "*string*"
      }
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```