SendNeo Test Mode

Test mode

Test mode lets you build and verify an integration without sending real email. Test keys start with sn_test_, and test sends are free and unlimited. They never reach a real inbox.

Deterministic recipients

Use these addresses to force a known outcome:

Address Simulated result
delivered@test.sendneo.dev delivered
bounced@test.sendneo.dev bounced
complained@test.sendneo.dev complained
Any other address delivered

A test call accepts a maximum of 50 recipients. Split larger test fixtures into multiple requests and keep an idempotency key on retries.

Example

export SENDNEO_API_KEY='sn_test_your_key'

curl https://sendneo.yorkermedia.com/api/emails \
  -X POST \
  -H "Authorization: Bearer $SENDNEO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: test-delivery-001" \
  -d '{
    "from":"Test <hello@mail.example.com>",
    "to":["delivered@test.sendneo.dev","bounced@test.sendneo.dev","complained@test.sendneo.dev"],
    "subject":"SendNeo integration test",
    "text":"Verify the status of each recipient."
  }'

The request returns a message ID. Poll GET /emails/{id} or register webhooks for the resulting events. A bounce or complaint generated by a test key does not send a real complaint to a mailbox; it is a deterministic test result for your code.

What to test

  • authentication and missing-key errors;
  • JSON validation and your error handling;
  • idempotent retries after a timeout;
  • scheduled messages and cancellation;
  • batch requests up to 100 objects;
  • attachment encoding and the 7 MB combined limit;
  • webhook signature verification and stale timestamps;
  • suppression and unsubscribe handling in your own application.

Use sn_test_ in local development, CI, and preview environments. Never put a live key in a fixture, browser bundle, or test log. When a live key is required for a final smoke test, send only to your own verified team addresses until account review is complete.

Test mode does not bypass domain requirements for request validation. Use a verified from domain in realistic integration tests so your production cutover does not discover a sender error later. See Quickstart, Sending, and Webhooks.