Skip to content
Start here

List reclassify submissions

client.emailSecurity.submissions.list(SubmissionListParams { account_id, direction, end, 12 more } params, RequestOptionsoptions?): V4PagePaginationArray<SubmissionListResponse { requested_at, submission_id, customer_status, 15 more } >
GET/accounts/{account_id}/email-security/submissions

Returns information for submissions made to reclassify emails. Shows the status, outcome, and disposition changes for reclassification requests made by users or the security team. Useful for tracking false positive/negative reports.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
params: SubmissionListParams { account_id, direction, end, 12 more }
account_id: string

Path param: Identifier.

maxLength32
direction?: "asc" | "desc"

Query param: The sorting direction.

One of the following:
"asc"
"desc"
end?: string

Query param: The end of the search date range. Defaults to now.

formatdate-time
escalated_from_user?: boolean

Query param: When true, return only submissions that were escalated by an end user (vs. by the security team). When false, return only submissions that were not escalated by an end user. When omitted, no filter is applied.

order?: "submission_id" | "subject" | "original_disposition" | 3 more

Query param: Field to sort by.

One of the following:
"submission_id"
"subject"
"original_disposition"
"requested_disposition"
"outcome_disposition"
"requested_at"
original_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more

Query param: The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
outcome_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more

Query param: The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
page?: number

Query param: Current page within paginated list of results.

minimum1
per_page?: number

Query param: The number of results per page. Maximum value is 1000.

maximum1000
minimum1
query?: string | null

Query param: Search term for filtering submissions.

requested_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more

Query param: The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
start?: string

Query param: The beginning of the search date range. Defaults to now - 30 days.

formatdate-time
status?: string

Query param: Filter by review status — escalated, reviewed, or unreviewed.

submission_id?: string

Query param: Filter by a specific submission ID.

type?: "TEAM" | "USER"

Query param: Filter by who created the submission — TEAM for security team members or USER for end users.

One of the following:
"TEAM"
"USER"
ReturnsExpand Collapse
SubmissionListResponse { requested_at, submission_id, customer_status, 15 more }
requested_at: string

When the submission was requested (UTC).

formatdate-time
submission_id: string
customer_status?: "escalated" | "reviewed" | "unreviewed" | null
One of the following:
"escalated"
"reviewed"
"unreviewed"
escalated_as?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more | null

The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
escalated_at?: string | null

When the submission was escalated to the security team.

formatdate-time
escalated_by?: string | null

Email address of the user who escalated the submission.

escalated_submission_id?: string | null

Submission ID of the escalated team submission, when this user submission was escalated.

original_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more | null

The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
original_edf_hash?: string | null

EDF hash of the original message.

original_postfix_id?: string | null

The postfix ID of the original message that was submitted.

outcome?: string | null

Processing outcome of the submission.

outcome_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more | null

The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
requested_by?: string | null

Email address of the user who requested the submission.

requested_disposition?: "MALICIOUS" | "SUSPICIOUS" | "SPOOF" | 3 more | null

The disposition a message is submitted to have.

One of the following:
"MALICIOUS"
"SUSPICIOUS"
"SPOOF"
"SPAM"
"BULK"
"NONE"
Deprecatedrequested_ts?: string

Use requested_at instead.

Deprecated, use requested_at instead.

status?: string | null

Processing status of the submission.

subject?: string | null

Subject line of the submitted message.

type?: "Team" | "User" | null

Indicates whether a team member or an end user created the submission.

One of the following:
"Team"
"User"

List reclassify submissions

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const submissionListResponse of client.emailSecurity.submissions.list({
  account_id: '023e105f4ecef8ad9ca31a8372d0c353',
})) {
  console.log(submissionListResponse.submission_id);
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": [
    {
      "requested_at": "2019-12-27T18:11:19.117Z",
      "submission_id": "submission_id",
      "customer_status": "escalated",
      "escalated_as": "MALICIOUS",
      "escalated_at": "2019-12-27T18:11:19.117Z",
      "escalated_by": "escalated_by",
      "escalated_submission_id": "escalated_submission_id",
      "original_disposition": "MALICIOUS",
      "original_edf_hash": "original_edf_hash",
      "original_postfix_id": "original_postfix_id",
      "outcome": "outcome",
      "outcome_disposition": "MALICIOUS",
      "requested_by": "requested_by",
      "requested_disposition": "MALICIOUS",
      "requested_ts": "requested_ts",
      "status": "status",
      "subject": "subject",
      "type": "Team"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": [
    {
      "requested_at": "2019-12-27T18:11:19.117Z",
      "submission_id": "submission_id",
      "customer_status": "escalated",
      "escalated_as": "MALICIOUS",
      "escalated_at": "2019-12-27T18:11:19.117Z",
      "escalated_by": "escalated_by",
      "escalated_submission_id": "escalated_submission_id",
      "original_disposition": "MALICIOUS",
      "original_edf_hash": "original_edf_hash",
      "original_postfix_id": "original_postfix_id",
      "outcome": "outcome",
      "outcome_disposition": "MALICIOUS",
      "requested_by": "requested_by",
      "requested_disposition": "MALICIOUS",
      "requested_ts": "requested_ts",
      "status": "status",
      "subject": "subject",
      "type": "Team"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000
  }
}