REST API Reference
Programmatically interact with your SigninID sandbox.
Base URL
https://api.signinid.comAuthentication
All API requests require a Bearer token in the Authorization header.
Authorization: Bearer sk_live_your_secret_key_hereGet Latest Inbox Email
GET
/v1/inbox/latestGet the most recent inbox email. Returns null if no email exists.
Example
curl "https://api.signinid.com/v1/inbox/latest?to=user@test.com" \
-H "Authorization: Bearer sk_live_your_secret_key"Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
to | string | No | Filter by recipient email (partial match) |
after | ISO 8601 | No | Only return emails received after this timestamp |
Tip: Use
after parameter with SDKs to wait for new emails.Response Type: InboxEmail | null
| Field | Type | Description |
|---|---|---|
email_id | string | Unique identifier (UUID) |
detected_otp | string | null | Auto-extracted verification code |
html_body | string | null | HTML content |
text_body | string | null | Plain text content |
from_address | string | Sender email address |
from_name | string | null | Sender display name |
to_addresses | string[] | Recipient addresses |
cc_addresses | string[] | null | CC addresses |
subject | string | null | Email subject |
received_at | ISO 8601 | When the email was received |
message_id | string | null | RFC 5322 Message-ID |
has_attachments | boolean | Whether email has attachments |
attachment_count | number | Number of attachments |
spam_score | number | null | Spam score (lower is better) |
spam_verdict | PASS | FAIL | GRAY | Spam classification |
spam_rules | object | null | Detailed spam analysis |
virus_verdict | PASS | FAIL | GRAY | PROCESSING_FAILED | Virus scan result |
spf_verdict | same as above | SPF authentication |
dkim_verdict | same as above | DKIM verification |
dmarc_verdict | same as above | DMARC compliance |
Get Inbox Email by ID
GET
/v1/inbox/:email_idGet a single inbox email by its ID.
Example
curl "https://api.signinid.com/v1/inbox/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer sk_live_your_secret_key"Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email_id | string (UUID) | Yes | The email ID to retrieve |
Response Type: InboxEmail
Returns 404 if not found.
| Field | Type | Description |
|---|---|---|
email_id | string | Unique identifier (UUID) |
detected_otp | string | null | Auto-extracted verification code |
html_body | string | null | HTML content |
text_body | string | null | Plain text content |
from_address | string | Sender email address |
from_name | string | null | Sender display name |
to_addresses | string[] | Recipient addresses |
cc_addresses | string[] | null | CC addresses |
subject | string | null | Email subject |
received_at | ISO 8601 | When the email was received |
message_id | string | null | RFC 5322 Message-ID |
has_attachments | boolean | Whether email has attachments |
attachment_count | number | Number of attachments |
spam_score | number | null | Spam score (lower is better) |
spam_verdict | PASS | FAIL | GRAY | Spam classification |
spam_rules | object | null | Detailed spam analysis |
virus_verdict | PASS | FAIL | GRAY | PROCESSING_FAILED | Virus scan result |
spf_verdict | same as above | SPF authentication |
dkim_verdict | same as above | DKIM verification |
dmarc_verdict | same as above | DMARC compliance |
List Inbox Email IDs
GET
/v1/inboxList inbox email IDs with pagination. Use /v1/inbox/:email_id to fetch full details.
Example
curl "https://api.signinid.com/v1/inbox?to=user@test.com&page=1&per_page=20" \
-H "Authorization: Bearer sk_live_your_secret_key"Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1, 2, 3...) |
per_page | integer | 10 | Results per page (1-100) |
from | string | - | Filter by sender (partial match) |
to | string | - | Filter by recipient (partial match) |
subject | string | - | Filter by subject (partial match) |
before | ISO 8601 | - | Emails before this date |
after | ISO 8601 | - | Emails after this date |
Response Type: ListIdsResponse
| Field | Type | Description |
|---|---|---|
data | string[] | Array of email IDs |
pagination.page | number | Current page number |
pagination.per_page | number | Items per page |
pagination.returned | number | Actual count returned |
pagination.has_more | boolean | More results available |
// Example response
{
"data": [
"550e8400-e29b-41d4-a716-446655440000",
"660f9500-f39c-52e5-b827-557766551111"
],
"pagination": {
"page": 1,
"per_page": 10,
"returned": 2,
"has_more": false
}
}Get Latest Sent Email
GET
/v1/sent/latestGet the most recent sent email. Returns null if no email exists.
Example
curl "https://api.signinid.com/v1/sent/latest?to=user@example.com" \
-H "Authorization: Bearer sk_live_your_secret_key"Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
to | string | No | Filter by recipient email (partial match) |
Response Type: SentEmail | null
| Field | Type | Description |
|---|---|---|
email_id | string | Unique identifier (UUID) |
detected_otp | string | null | Auto-extracted verification code |
html_body | string | null | HTML content |
text_body | string | null | Plain text content |
from_address | string | Sender email address |
from_name | string | null | Sender display name |
to_addresses | string[] | Recipient addresses |
cc_addresses | string[] | null | CC addresses |
bcc_addresses | string[] | null | BCC addresses |
subject | string | null | Email subject |
sent_at | ISO 8601 | When the email was sent |
message_id | string | null | RFC 5322 Message-ID |
has_attachments | boolean | Whether email has attachments |
attachment_count | number | Number of attachments |
spam_score | number | null | Spam score |
spam_verdict | PASS | FAIL | GRAY | Spam classification |
Get Sent Email by ID
GET
/v1/sent/:email_idGet a single sent email by its ID.
Example
curl "https://api.signinid.com/v1/sent/660f9500-f39c-52e5-b827-557766551111" \
-H "Authorization: Bearer sk_live_your_secret_key"Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email_id | string (UUID) | Yes | The email ID to retrieve |
Response Type: SentEmail
Returns 404 if not found.
| Field | Type | Description |
|---|---|---|
email_id | string | Unique identifier (UUID) |
detected_otp | string | null | Auto-extracted verification code |
html_body | string | null | HTML content |
text_body | string | null | Plain text content |
from_address | string | Sender email address |
from_name | string | null | Sender display name |
to_addresses | string[] | Recipient addresses |
cc_addresses | string[] | null | CC addresses |
bcc_addresses | string[] | null | BCC addresses |
subject | string | null | Email subject |
sent_at | ISO 8601 | When the email was sent |
message_id | string | null | RFC 5322 Message-ID |
has_attachments | boolean | Whether email has attachments |
attachment_count | number | Number of attachments |
spam_score | number | null | Spam score |
spam_verdict | PASS | FAIL | GRAY | Spam classification |
List Sent Email IDs
GET
/v1/sentList sent email IDs with pagination. Use /v1/sent/:email_id to fetch full details.
Example
curl "https://api.signinid.com/v1/sent?to=user@example.com&page=1&per_page=20" \
-H "Authorization: Bearer sk_live_your_secret_key"Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1, 2, 3...) |
per_page | integer | 10 | Results per page (1-100) |
from | string | - | Filter by sender (partial match) |
to | string | - | Filter by recipient (partial match) |
subject | string | - | Filter by subject (partial match) |
before | ISO 8601 | - | Emails before this date |
after | ISO 8601 | - | Emails after this date |
Response Type: ListIdsResponse
| Field | Type | Description |
|---|---|---|
data | string[] | Array of email IDs |
pagination.page | number | Current page number |
pagination.per_page | number | Items per page |
pagination.returned | number | Actual count returned |
pagination.has_more | boolean | More results available |
Error Responses
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Invalid request parameters |
| 401 | UNAUTHORIZED | Missing or invalid secret key |
| 404 | NOT_FOUND | Email not found |
| 429 | RATE_LIMITED | Too many requests |
| 500 | INTERNAL_ERROR | Server error |
{
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid request parameters",
"details": [
{ "field": "per_page", "message": "Maximum value is 100" }
]
}
}