Sign inGet Started

List Apple Messages for Business submissions

GET
/v1/amb/business-accounts/{business_account_id}/submissions
const result = await bird.amb.businessAccounts.submissions.list(
  "abz_01krdgeqcxet5s7t44vh8rt9mg",
  { limit: 2 },
);
console.log(result);
Response200
{
  "data": [
    {
      "id": "abs_01krdgeqcxet5s7t44vh8rt9mg",
      "business_account_id": "abz_01krdgeqcxet5s7t44vh8rt9mg",
      "readiness_attachment": {
        "created_at": "2026-05-20T09:14:52Z",
        "updated_at": "2026-05-25T16:42:01Z",
        "id": "tca_01krdgeqcxet5s7t44vh8rt9mg",
        "status": "draft"
      },
      "use_cases_attachment": {
        "created_at": "2026-05-20T09:14:52Z",
        "updated_at": "2026-05-25T16:42:01Z",
        "id": "tca_01krdgeqcxet5s7t44vh8rt9mg",
        "status": "draft"
      },
      "video_attachment": {
        "created_at": "2026-05-20T09:14:52Z",
        "updated_at": "2026-05-25T16:42:01Z",
        "id": "tca_01krdgeqcxet5s7t44vh8rt9mg",
        "status": "draft"
      },
      "status": "submitted",
      "next": [
        {
          "kind": "operation"
        }
      ]
    }
  ],
  "next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
  "prev_cursor": null,
  "refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}

Returns review attempts with frozen evidence for this business, newest first, with fresh private evidence URLs.

Parameters

business_account_idstring

Query Parameters

sortstring

Field to sort by. Possible values: created_at. Defaults to created_at.

Possible values: created_at

orderstring

Sort direction. Defaults to desc, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.

Possible values: asc, desc

limitinteger

Maximum number of items to return per page.

starting_afterstring

Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.

ending_beforestring

Cursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.

include_totalboolean

When true, the response includes a total field with the total number of items matching the request's filters across all pages.

Response Payload

data
array of object
required
Show child attributes
data.id
string
required
data.business_account_id
string
required
data.apple_business_id
string
required

The Apple business UUID frozen when this attempt was submitted.

data.name
string
required

The customer-supplied Bird account name frozen when this attempt was submitted.

data.readiness_attachment
object
required
Show child attributes
data.readiness_attachment.created_at
string
required
data.readiness_attachment.updated_at
string
required
data.readiness_attachment.id
string
required
data.readiness_attachment.filename
string
required

The uploaded file's name.

data.readiness_attachment.content_type
string
required

The file's content type, determined from its contents.

data.readiness_attachment.size_bytes
integer
required

The file's size in bytes.

data.readiness_attachment.description
string

A short note describing what the file shows.

data.readiness_attachment.status
string
required

Lifecycle of an attachment. draft is a file that has been uploaded but nothing has been registered or submitted with it yet, and it is discarded at its expires_at. attached means at least one registration has cited it, so it is kept permanently and can no longer be deleted.

Possible values: draft, attached

data.readiness_attachment.download_url
string
required

Short-lived signed URL for downloading or previewing the attachment. Valid for 24 hours from when the resource was fetched; request a fresh resource to obtain a new URL after expiry. Do not cache beyond download_url_expires_at. Registration authorities (10DLC and toll-free carriers) retrieve evidence via a separate, longer-lived token; this URL is not that token.

data.readiness_attachment.preview_url
string

Optional signed URL for inline viewing on an isolated storage origin. Valid for one hour; fetch the attachment again to refresh it.

data.readiness_attachment.download_url_expires_at
string
required

When download_url expires. Both fields are always present; the server returns an error rather than omitting them.

data.readiness_attachment.expires_at
nullable string
required

When this attachment is discarded if nothing is registered or submitted with it. Null once its status is attached.

data.use_cases_attachment
object
required
Show child attributes
data.video_attachment
object
required
Show child attributes
data.status
string
required

The review outcome of this attempt. Earlier attempts retain their outcome when a new attempt is submitted.

data.status_reason
nullable string
required

Review feedback on this attempt, such as the reason Apple rejected it. May contain basic Markdown, such as emphasis and lists.

data.created_at
string
required
data.next
array of object

Read the parent business account for current eligibility and next actions. Present on create responses and each customer submission-list item; historical attempts do not establish current account state.

Show child attributes
data.updated_at
string
required
next_cursor
nullable string
required

Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.

prev_cursor
nullable string
required

Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.

refresh_cursor
nullable string
required

Refresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.

total
nullable integer

Total number of items matching the request's filters across all pages. Present only when include_total=true was passed; otherwise null.

Continue with the documentation, guides and examples for this topic.