> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raykoi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Viewing Submissions

> Where submissions land, how they're filtered, and what the status tabs mean.

Every form's **Submissions** tab shows incoming data as it arrives — no polling, no separate export step required just to see what came in.

## Status tabs

Every submission lands in exactly one of three buckets, decided server-side by Raykoi's spam-scoring pipeline (honeypot, CAPTCHA, rate limiting, and repeated-failure signals):

| Tab            | Meaning                                                                                                                                                                                       |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Valid**      | Passed every check cleanly. What you almost always want to act on.                                                                                                                            |
| **Suspicious** | Stored, but flagged — one or more soft signals fired (missing CAPTCHA token, elevated recent volume) without being conclusive enough to block outright. Worth a glance, not necessarily spam. |
| **Spam**       | Would have been blocked outright (honeypot, a verified-failed CAPTCHA) — Raykoi never silently drops data, so even a blocked-classification submission is visible here rather than vanishing. |

A submission is never deleted just for being classified spam or suspicious — you decide what to do with it.

## Reading a submission

Click into any row to see the full field-by-field breakdown, plus metadata Raykoi captures automatically: submission time, country (derived from IP, never stored raw), a coarse device type and browser (derived server-side from the User-Agent — never trusted from the client), and the referring page.

Uploaded files are shown inline with a signed, time-limited download link — see [File Uploads](/essentials/file-uploads).

The same data is available programmatically through the [Server Data API](/api-reference/server-data-api) if you want to pull it into your own system instead of reading it in the dashboard:

```javascript theme={null}
import { createAdminClient } from '@raykoi/sdk/admin';

const admin = createAdminClient({ apiKey: process.env.RAYKOI_SECRET_KEY });
const { submissions } = await admin.submissions.list('YOUR_PUBLIC_ID', { status: 'completed' });

// submissions[0]:
// {
//   id: 'sub_pub_1a2b3c',
//   submission_number: 42,
//   fields: { email: 'user@example.com', message: 'Hello!' },
//   status: 'completed',
//   country: 'US',
//   created_at: '2026-08-23T18:00:00.000Z'
// }
```

## Search and filtering

Search across submitted field values, and narrow by time range. Marking a submission as read/unread is purely for your own triage — it has no effect on the data itself or on any integration.

## Blocked attempts

A submission that never made it past honeypot/origin/quota/CAPTCHA enforcement doesn't appear in the main Valid/Suspicious/Spam table at all (it was never stored as a submission) — but it's not invisible either. This same **Submissions** screen also surfaces blocked attempts with the reason each one was rejected, useful for diagnosing "why isn't my traffic getting through" without digging through server logs. Free on every plan, no entitlement required.

<Note>
  Don't confuse this with the separate **Activity** tab, which tracks visitor *engagement* (views, starts, device/browser/country) rather than rejected submissions — see [Analytics & Activity](/dashboard/analytics).
</Note>
