SendCanyon
Deliverability

Deliverability

Inbox placement tests

Send one real message to a check address and a network of seed mailboxes, and see where it landed, how it authenticated, whether you are blocklisted and how the spam filter scored it.

3 min read

A placement test answers "where does my mail actually land?" with observed results, not estimates. You send one message to a check address and to SendCanyon's seed mailboxes — real accounts at Gmail, Outlook, Yahoo and other providers. SendCanyon analyses the copy the check address receives and reads each seed mailbox over IMAP to find the folder its copy was filed in.

Three ways to send the test

  • From a connected mailbox — pick a mailbox, write or load a template, and SendCanyon sends one copy to every address through that mailbox's own server, exactly as a campaign does. A Test ID: … line is added as the last line of the body.
  • From my marketing tool — copy the address list (or download it as CSV) and send from whatever you use today. Put the Test ID in the subject or the body: the seed search looks for it.
  • By API — POST /api/v1/placement-tests returns the Test ID and the address list, for sending from your own system.

What the results contain

SectionWhere it comes from
Inbox placementEach seed mailbox, read over IMAP: Inbox, a Gmail tab (Promotions, Updates, Social, Forums), Spam, or missing. Rates are over seeds that reported a result; a seed that could not be read is shown as an error and left out of the rates.
AuthenticationSPF, DKIM, DMARC alignment, ARC and BIMI evaluated on the received message with the real connecting IP, HELO name and envelope sender, plus forward-confirmed reverse DNS. Each seed also shows the receiving provider's own Authentication-Results verdict.
BlocklistsLive DNS queries for the sending IP, the From domain, DKIM signing domains and the domains of your links. A list that refuses to answer is shown as unavailable, never as clean.
Spam filter scoreThe spam filter score for the exact message received, with every rule it triggered and its points. Lower is better.
ContentThe same content checks as the Template checker, run on the message as delivered — unfilled merge fields count, because they were sent.

The overall score combines inbox placement (40%), authentication (25%), blocklists (15%), spam score (10%) and content (10%). A part that could not be measured is left out and the rest are re-weighted, and each part is shown on its own so nothing is hidden in the average. If no seed mailboxes are active, placement is shown as not measured and the score covers the other parts only.

Running a test over the API

Create a test, send to its addresses, then read the results
curl -X POST https://app.sendcanyon.com/api/v1/placement-tests \
  -H "Authorization: Bearer sc_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name": "October newsletter", "mode": "api"}'

# data.code is the Test ID; data.addresses lists the check address first, then the seeds.

curl https://app.sendcanyon.com/api/v1/placement-tests/<id> \
  -H "Authorization: Bearer sc_live_..."
  • GET /api/v1/placement-tests — page, page_size (10, 25, 50 or 100), sort (created_at, name, score, status, inbox_rate), dir, and filters q, status, mode, band (comma-separated), created_by, from, to.
  • GET /api/v1/placement-tests/<id>/report?format=csv|json — the full report as a file.
  • POST /api/v1/placement-tests/<id>/rerun starts a new test with the same settings; POST …/cancel stops an open one; PATCH renames; DELETE removes it from history.
  • GET /api/v1/placement-tests/export — the filtered history as CSV.

Each test counts against your plan's monthly placement test allowance when it is created; deleting it later does not give the run back. Subscribe to the placement_test.completed webhook to be told when results are final.

Was this page helpful?

Related articles