Serveur MCP

MinuteMail

io.github.minutemailco/mcp-server
Communication Outils développeur Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Provides temporary mailboxes, simulated inbound email, attachments, custom-domain verification, and mock OAuth identities for testing email and authentication flows.

archived.delete
Delete archived mailbox
Permanently delete an archived mailbox.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'mailboxId': {'type': 'string', 'description': 'Archived mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
archived.get
Get archived mailbox
Fetch a single archived mailbox by ID.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'mailboxId': {'type': 'string', 'description': 'Archived mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}
archived.list
List archived mailboxes
List the tenant's archived (expired but recoverable) mailboxes.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}}}}
archived.reactivate
Reactivate archived mailbox
Reactivate an archived mailbox back to active state.
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'expiresIn': {'type': 'integer', 'description': 'New lifetime in minutes, 1-60. Optional.'}, 'mailboxId': {'type': 'string', 'description': 'Archived mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}
attachments.add
Add attachment
Attach a file to a test-injected email (base64 payload).
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId', 'filename', 'data'], 'properties': {'data': {'type': 'string', 'description': 'File contents, standard base64'}, 'mailId': {'type': 'string', 'description': 'Mail ID'}, 'filename': {'type': 'string', 'description': 'Attachment file name'}, 'expiresIn': {'type': 'integer', 'description': 'Attachment lifetime in minutes (>=1). Optional.'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}, 'sizeBytes': {'type': 'integer', 'description': 'Expected size in bytes. Optional; validated against the decoded data when set.'}, 'contentType': {'type': 'string', 'description': 'MIME type, defaults to application/octet-stream'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'filename'], 'properties': {'id': {'type': 'string', 'description': 'Attachment ID'}, 'filename': {'type': 'string', 'description': 'Attachment file name'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'sizeBytes': {'type': 'integer', 'description': 'Size in bytes'}, 'contentType': {'type': 'string', 'description': 'MIME type'}}}
attachments.delete
Delete attachment
Delete a single attachment.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId', 'attachmentId'], 'properties': {'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}, 'attachmentId': {'type': 'string', 'description': 'Attachment ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
attachments.delete_bulk
Bulk delete attachments
Delete several attachments of one email at once.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId', 'ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Attachment IDs to delete'}, 'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
attachments.get
Get attachment
Download an attachment. The file contents are returned base64-encoded in the JSON "data" field.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId', 'attachmentId'], 'properties': {'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}, 'attachmentId': {'type': 'string', 'description': 'Attachment ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'filename', 'data'], 'properties': {'id': {'type': 'string', 'description': 'Attachment ID'}, 'data': {'type': 'string', 'description': 'File contents, standard base64'}, 'filename': {'type': 'string', 'description': 'Attachment file name'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'sizeBytes': {'type': 'integer', 'description': 'Size in bytes'}, 'contentType': {'type': 'string', 'description': 'MIME type'}}}
attachments.list
List attachments
List the attachments of an email (metadata only).
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId'], 'properties': {'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'filename'], 'properties': {'id': {'type': 'string', 'description': 'Attachment ID'}, 'filename': {'type': 'string', 'description': 'Attachment file name'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'sizeBytes': {'type': 'integer', 'description': 'Size in bytes'}, 'contentType': {'type': 'string', 'description': 'MIME type'}}}}}}
domains.delete
Delete domain
Delete a registered custom domain.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['domainId'], 'properties': {'domainId': {'type': 'string', 'description': 'Domain ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
domains.list
List domains
List the tenant's custom domains with their DNS verification status.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Domain ID'}, 'name': {'type': 'string', 'description': 'Domain name'}, 'status': {'enum': ['pending', 'verified'], 'type': 'string', 'description': 'DNS verification status'}, 'mxTarget': {'type': 'string', 'description': "MX target to add to the domain's DNS before verification"}, 'txtToken': {'type': 'string', 'description': "TXT token to add to the domain's DNS before verification"}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}}}}
domains.register
Register domain
Register a new custom domain. DNS records (TXT token + MX) must then be added before verification can succeed.
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Domain name, e.g. mail.example.com'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'name', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Domain ID'}, 'name': {'type': 'string', 'description': 'Domain name'}, 'status': {'enum': ['pending', 'verified'], 'type': 'string', 'description': 'DNS verification status'}, 'mxTarget': {'type': 'string', 'description': "MX target to add to the domain's DNS before verification"}, 'txtToken': {'type': 'string', 'description': "TXT token to add to the domain's DNS before verification"}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}
domains.verify
Verify domain
Trigger DNS verification (TXT + MX) of a registered domain.
Schéma d’entrée
{'type': 'object', 'required': ['domainId'], 'properties': {'domainId': {'type': 'string', 'description': 'Domain ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'name', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Domain ID'}, 'name': {'type': 'string', 'description': 'Domain name'}, 'status': {'enum': ['pending', 'verified'], 'type': 'string', 'description': 'DNS verification status'}, 'mxTarget': {'type': 'string', 'description': "MX target to add to the domain's DNS before verification"}, 'txtToken': {'type': 'string', 'description': "TXT token to add to the domain's DNS before verification"}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}
identities.create
Create identity
Create a mock identity bound to a mailbox for OAuth flow testing.
Schéma d’entrée
{'type': 'object', 'required': ['clientId', 'mailboxAddress'], 'properties': {'name': {'type': 'string', 'description': 'Display name. Optional.'}, 'claims': {'type': 'object', 'description': 'Custom claims (e.g. role, plan) merged into the ID token and userinfo. Custom-provider clients only — rejected for google/github/apple/facebook. Optional.', 'additionalProperties': {'type': 'string'}}, 'clientId': {'type': 'string', 'description': 'OAuth client ID the identity belongs to'}, 'username': {'type': 'string', 'description': 'Identity username. Optional.'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL. Optional.'}, 'emailVerified': {'type': 'boolean', 'description': 'Value of the email_verified claim issued for this identity. Optional.'}, 'mailboxAddress': {'type': 'string', 'description': 'Mailbox address the identity is linked to (must exist)'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'clientId', 'mailboxAddress'], 'properties': {'id': {'type': 'string', 'description': 'Identity ID'}, 'name': {'type': 'string', 'description': 'Display name'}, 'clientId': {'type': 'string', 'description': 'OAuth client ID the identity belongs to'}, 'username': {'type': 'string', 'description': 'Identity username'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL'}, 'mailboxAddress': {'type': 'string', 'description': 'Mailbox address the identity is linked to'}}}
identities.delete
Delete identity
Delete a mock identity.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['identityId'], 'properties': {'identityId': {'type': 'string', 'description': 'Identity ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
identities.get
Get identity
Fetch a single mock identity by ID.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['identityId'], 'properties': {'identityId': {'type': 'string', 'description': 'Identity ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'clientId', 'mailboxAddress'], 'properties': {'id': {'type': 'string', 'description': 'Identity ID'}, 'name': {'type': 'string', 'description': 'Display name'}, 'clientId': {'type': 'string', 'description': 'OAuth client ID the identity belongs to'}, 'username': {'type': 'string', 'description': 'Identity username'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL'}, 'mailboxAddress': {'type': 'string', 'description': 'Mailbox address the identity is linked to'}}}
identities.list
List identities
List the tenant's mock identities, optionally filtered by OAuth client or mailbox address.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'clientId': {'type': 'string', 'description': 'Filter by OAuth client ID. Optional.'}, 'mailboxAddress': {'type': 'string', 'description': 'Filter by mailbox address. Optional.'}}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'clientId', 'mailboxAddress'], 'properties': {'id': {'type': 'string', 'description': 'Identity ID'}, 'name': {'type': 'string', 'description': 'Display name'}, 'clientId': {'type': 'string', 'description': 'OAuth client ID the identity belongs to'}, 'username': {'type': 'string', 'description': 'Identity username'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL'}, 'mailboxAddress': {'type': 'string', 'description': 'Mailbox address the identity is linked to'}}}}}}
identities.update
Update identity
Update a mock identity: profile fields, isActive (activate/deactivate), emailVerified, and custom claims merged into the ID token and userinfo.
Schéma d’entrée
{'type': 'object', 'required': ['identityId'], 'properties': {'name': {'type': 'string', 'description': 'Display name. Optional.'}, 'claims': {'type': 'object', 'description': 'Custom claims (e.g. role, plan) merged into the ID token and userinfo. Replaces existing claims. Reserved claim names are rejected. Optional.', 'additionalProperties': {'type': 'string'}}, 'isActive': {'type': 'boolean', 'description': 'Whether the identity can be used in OAuth flows. Optional.'}, 'username': {'type': 'string', 'description': 'Identity username. Optional.'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL. Optional.'}, 'identityId': {'type': 'string', 'description': 'Identity ID'}, 'emailVerified': {'type': 'boolean', 'description': 'Value of the email_verified claim issued for this identity. Optional.'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'clientId', 'mailboxAddress'], 'properties': {'id': {'type': 'string', 'description': 'Identity ID'}, 'name': {'type': 'string', 'description': 'Display name'}, 'clientId': {'type': 'string', 'description': 'OAuth client ID the identity belongs to'}, 'username': {'type': 'string', 'description': 'Identity username'}, 'avatarUrl': {'type': 'string', 'description': 'Avatar URL'}, 'mailboxAddress': {'type': 'string', 'description': 'Mailbox address the identity is linked to'}}}
mailboxes.create
Create mailbox
Create a new temporary mailbox. The domain defaults to the tenant's default domain; the owner is always the API key's owner.
Schéma d’entrée
{'type': 'object', 'properties': {'tag': {'type': 'string', 'description': 'Recovery tag, required when recoverable is true.'}, 'domain': {'type': 'string', 'description': 'Mailbox domain. Defaults to the tenant default domain (e.g. minutemail.cc).'}, 'expiresIn': {'type': 'integer', 'description': 'Lifetime in minutes, 1-60. Omit for the service default TTL.'}, 'recoverable': {'type': 'boolean', 'description': 'Set true to keep the mailbox recoverable after expiry (requires tag).'}, 'noExpiration': {'type': 'boolean', 'description': 'Set true for a permanent mailbox (mutually exclusive with expiresIn).'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}
mailboxes.delete
Delete mailbox
Delete a mailbox and its contents by ID.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
mailboxes.delete_bulk
Bulk delete mailboxes
Delete several mailboxes at once by ID.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Mailbox IDs to delete'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
mailboxes.get
Get mailbox
Fetch a single mailbox by ID.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}
mailboxes.list
List mailboxes
List the tenant's active mailboxes (owner is derived from the API key). Optionally look up a single mailbox by exact address.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'address': {'type': 'string', 'description': 'Exact mailbox address to look up (e.g. user@minutemail.cc). Optional.'}}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'address'], 'properties': {'id': {'type': 'string', 'description': 'Mailbox ID'}, 'alias': {'type': 'string', 'description': 'Local part of the address'}, 'owner': {'type': 'string', 'description': 'Owner (tenant) ID'}, 'domain': {'type': 'string', 'description': 'Mailbox domain'}, 'address': {'type': 'string', 'description': 'Full mailbox address'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339); null when permanent'}, 'permanent': {'type': 'boolean', 'description': 'Whether the mailbox never expires'}, 'recoverable': {'type': 'boolean', 'description': 'Whether the mailbox can be recovered after expiry'}, 'messageCount': {'type': 'integer', 'description': 'Number of mails in the mailbox'}}}}}}
mails.delete
Delete mail
Delete a single email.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId'], 'properties': {'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
mails.delete_bulk
Bulk delete mails
Delete several emails of one mailbox at once.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'ids'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Mail IDs to delete'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
mails.get
Get mail
Fetch a single email by ID, including body and attachment metadata.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'mailId'], 'properties': {'mailId': {'type': 'string', 'description': 'Mail ID'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'sender', 'subject'], 'properties': {'id': {'type': 'string', 'description': 'Mail ID'}, 'body': {'type': 'string', 'description': 'Plain-text body (present on single-mail fetches)'}, 'sender': {'type': 'string', 'description': 'Sender email address'}, 'subject': {'type': 'string', 'description': 'Email subject'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'receivedAt': {'type': 'string', 'description': 'Received timestamp (RFC 3339)'}}}
mails.inject
Inject test mail
Inject a simulated inbound email into a mailbox (multipart upload). No external mail is sent; use this to simulate inbound mail for flow testing.
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId', 'sender', 'subject', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Plain-text body'}, 'sender': {'type': 'string', 'description': 'Sender email address'}, 'subject': {'type': 'string', 'description': 'Email subject'}, 'expiresIn': {'type': 'integer', 'description': 'Mail lifetime in minutes (>=1). Optional.'}, 'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'data'], 'properties': {'data': {'type': 'string', 'description': 'File contents, standard base64'}, 'filename': {'type': 'string', 'description': 'Attachment file name'}, 'contentType': {'type': 'string', 'description': 'MIME type, defaults to application/octet-stream'}}}, 'description': 'Attachments to include'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'sender', 'subject'], 'properties': {'id': {'type': 'string', 'description': 'Mail ID'}, 'body': {'type': 'string', 'description': 'Plain-text body (present on single-mail fetches)'}, 'sender': {'type': 'string', 'description': 'Sender email address'}, 'subject': {'type': 'string', 'description': 'Email subject'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'receivedAt': {'type': 'string', 'description': 'Received timestamp (RFC 3339)'}}}
mails.list
List mails
List the emails in a mailbox, newest first.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['mailboxId'], 'properties': {'mailboxId': {'type': 'string', 'description': 'Mailbox ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'sender', 'subject'], 'properties': {'id': {'type': 'string', 'description': 'Mail ID'}, 'body': {'type': 'string', 'description': 'Plain-text body (present on single-mail fetches)'}, 'sender': {'type': 'string', 'description': 'Sender email address'}, 'subject': {'type': 'string', 'description': 'Email subject'}, 'expiresAt': {'type': 'string', 'description': 'Expiry timestamp (RFC 3339)'}, 'receivedAt': {'type': 'string', 'description': 'Received timestamp (RFC 3339)'}}}}}}
oauth.clients.create
Create OAuth client
Register an OAuth client for mock identity flows. The plaintext clientSecret is returned once at creation.
Schéma d’entrée
{'type': 'object', 'required': ['name', 'redirectUris'], 'properties': {'name': {'type': 'string', 'description': 'Client display name'}, 'providerType': {'enum': ['google', 'github', 'apple', 'facebook', 'custom'], 'type': 'string', 'description': 'Identity provider type'}, 'redirectUris': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed redirect URIs (at least one)'}, 'providerLabel': {'type': 'string', 'description': 'Custom provider label. Required when providerType is custom.'}}}
Schéma de sortie
{'type': 'object', 'required': ['clientId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Client display name'}, 'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'clientSecret': {'type': 'string', 'description': 'Plaintext secret — returned once at creation or rotation'}, 'providerType': {'enum': ['google', 'github', 'apple', 'facebook', 'custom'], 'type': 'string', 'description': 'Identity provider type'}, 'redirectUris': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed redirect URIs'}, 'providerLabel': {'type': 'string', 'description': 'Custom provider label'}}}
oauth.clients.delete
Delete OAuth client
Delete an OAuth client by its public client ID.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['clientId'], 'properties': {'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
oauth.clients.get
Get OAuth client
Fetch a single OAuth client by its public client ID.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['clientId'], 'properties': {'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['clientId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Client display name'}, 'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'clientSecret': {'type': 'string', 'description': 'Plaintext secret — returned once at creation or rotation'}, 'providerType': {'enum': ['google', 'github', 'apple', 'facebook', 'custom'], 'type': 'string', 'description': 'Identity provider type'}, 'redirectUris': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed redirect URIs'}, 'providerLabel': {'type': 'string', 'description': 'Custom provider label'}}}
oauth.clients.list
List OAuth clients
List the tenant's OAuth clients for mock identity testing.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'properties': {'clients': {'type': 'array', 'items': {'type': 'object', 'required': ['clientId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Client display name'}, 'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'clientSecret': {'type': 'string', 'description': 'Plaintext secret — returned once at creation or rotation'}, 'providerType': {'enum': ['google', 'github', 'apple', 'facebook', 'custom'], 'type': 'string', 'description': 'Identity provider type'}, 'redirectUris': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed redirect URIs'}, 'providerLabel': {'type': 'string', 'description': 'Custom provider label'}}}}}}
oauth.clients.rotate_secret
Rotate client secret
Rotate an OAuth client's secret. The new plaintext secret is returned once.
Schéma d’entrée
{'type': 'object', 'required': ['clientId'], 'properties': {'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['clientId', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Client display name'}, 'clientId': {'type': 'string', 'description': 'Public OAuth client ID'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}, 'clientSecret': {'type': 'string', 'description': 'Plaintext secret — returned once at creation or rotation'}, 'providerType': {'enum': ['google', 'github', 'apple', 'facebook', 'custom'], 'type': 'string', 'description': 'Identity provider type'}, 'redirectUris': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Allowed redirect URIs'}, 'providerLabel': {'type': 'string', 'description': 'Custom provider label'}}}
team.invitations.create
Create invitation
Create a team invitation for an email address (SMTP invite is sent by the team service).
Schéma d’entrée
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'Invitee email address'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'email', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Invitation ID'}, 'email': {'type': 'string', 'description': 'Invitee email address'}, 'status': {'type': 'string', 'description': 'Invitation status (e.g. PENDING)'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}
team.invitations.delete
Delete invitation
Revoke a team invitation.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['invitationId'], 'properties': {'invitationId': {'type': 'string', 'description': 'Invitation ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
team.invitations.list
List invitations
List the tenant's team invitations.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'email', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Invitation ID'}, 'email': {'type': 'string', 'description': 'Invitee email address'}, 'status': {'type': 'string', 'description': 'Invitation status (e.g. PENDING)'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}}}}
team.members.add
Add team member
Add a team member directly (no invitation flow).
Schéma d’entrée
{'type': 'object', 'required': ['user_id', 'username', 'email', 'status'], 'properties': {'email': {'type': 'string', 'description': 'Member email address'}, 'status': {'type': 'string', 'description': 'Member status, conventionally ACTIVE'}, 'user_id': {'type': 'string', 'description': 'Member user ID'}, 'username': {'type': 'string', 'description': 'Member username'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'email', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Member ID'}, 'email': {'type': 'string', 'description': 'Member email address'}, 'status': {'type': 'string', 'description': 'Member status (e.g. ACTIVE)'}, 'user_id': {'type': 'string', 'description': 'Member user ID'}, 'username': {'type': 'string', 'description': 'Member username'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}
team.members.delete
Delete team member
Remove a team member.
Destructif
Schéma d’entrée
{'type': 'object', 'required': ['memberId'], 'properties': {'memberId': {'type': 'string', 'description': 'Member ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['status', 'http_status'], 'properties': {'status': {'type': 'string', 'const': 'ok'}, 'http_status': {'type': 'integer', 'description': 'HTTP status of the API response'}}}
team.members.get
Get team member
Fetch a single team member by ID.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['memberId'], 'properties': {'memberId': {'type': 'string', 'description': 'Member ID'}}}
Schéma de sortie
{'type': 'object', 'required': ['id', 'email', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Member ID'}, 'email': {'type': 'string', 'description': 'Member email address'}, 'status': {'type': 'string', 'description': 'Member status (e.g. ACTIVE)'}, 'user_id': {'type': 'string', 'description': 'Member user ID'}, 'username': {'type': 'string', 'description': 'Member username'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}
team.members.list
List team members
List the tenant's team members.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'email', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Member ID'}, 'email': {'type': 'string', 'description': 'Member email address'}, 'status': {'type': 'string', 'description': 'Member status (e.g. ACTIVE)'}, 'user_id': {'type': 'string', 'description': 'Member user ID'}, 'username': {'type': 'string', 'description': 'Member username'}, 'createdAt': {'type': 'string', 'description': 'Creation timestamp (RFC 3339)'}}}}}}
Ajouté
oauth.clients.rotate_secret
17 September 2026 12:45
Ajouté
oauth.clients.delete
17 September 2026 12:45
Ajouté
oauth.clients.get
17 September 2026 12:45
Ajouté
oauth.clients.create
17 September 2026 12:45
Ajouté
oauth.clients.list
17 September 2026 12:45
Ajouté
identities.delete
17 September 2026 12:45
Ajouté
identities.update
17 September 2026 12:45
Ajouté
identities.get
17 September 2026 12:45
Ajouté
identities.create
17 September 2026 12:45
Ajouté
identities.list
17 September 2026 12:45
Ajouté
team.invitations.delete
17 September 2026 12:45
Ajouté
team.invitations.list
17 September 2026 12:45
Ajouté
team.invitations.create
17 September 2026 12:45
Ajouté
team.members.delete
17 September 2026 12:45
Ajouté
team.members.get
17 September 2026 12:45
Ajouté
team.members.add
17 September 2026 12:45
Ajouté
team.members.list
17 September 2026 12:45
Ajouté
domains.delete
17 September 2026 12:45
Ajouté
domains.verify
17 September 2026 12:45
Ajouté
domains.register
17 September 2026 12:45
Ajouté
domains.list
17 September 2026 12:45
Ajouté
archived.reactivate
17 September 2026 12:45
Ajouté
archived.delete
17 September 2026 12:45
Ajouté
archived.get
17 September 2026 12:45
Ajouté
archived.list
17 September 2026 12:45
Ajouté
attachments.delete_bulk
17 September 2026 12:45
Ajouté
attachments.delete
17 September 2026 12:45
Ajouté
attachments.get
17 September 2026 12:45
Ajouté
attachments.add
17 September 2026 12:45
Ajouté
attachments.list
17 September 2026 12:45