Create a key to copy examples filled with your team.

Sending domains

Create, verify, suspend, and resume domains.

DKIM, SPF, and return-path live on the sending domain, not the tenant. Publish the CNAME and TXT records, then verify. The first domain becomes the account primary. Every outbound message is also DKIM-signed with that domain.

GET /api/v1/teams/:team_id/sending_domains

List sending domains and their DNS records.

request.sh
1 curl -sS -X GET \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 https://postshiba.com/api/v1/teams/1/sending_domains
response.json
1 [
2 {
3 "id": 8,
4 "name": "mail.example.com",
5 "tenant_id": 12,
6 "tenant": "default",
7 "dkim_status": "pending",
8 "spf_status": "pending",
9 "return_path_status": "pending",
10 "dkim_cname_host": "s1._domainkey.mail.example.com",
11 "dkim_cname_target": "1-8.dkim.capsule.test",
12 "spf_record": "v=spf1 include:spf.capsule.test ~all",
13 "return_path_host": "rp.mail.example.com",
14 "return_path_target": "rp.capsule.test",
15 "suspended": false,
16 "primary": false
17 }
18 ]

GET /api/v1/sending_domains/:id

Get one domain, including DKIM CNAME, SPF, and return-path.

  • id: Sending domain id
request.sh
1 curl -sS -X GET \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 https://postshiba.com/api/v1/sending_domains/:sending_domain_id
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": false,
15 "primary": false
16 }

POST /api/v1/teams/:team_id/sending_domains

Create a domain. Optional tenant_id. Defaults to the team's default tenant. Queues a DNS check.

request.sh
1 curl -sS -X POST \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 -d '{"sending_domain":{"name":"mail.example.com","tenant_id":12}}' \
5 https://postshiba.com/api/v1/teams/1/sending_domains
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": false,
15 "primary": false
16 }

POST /api/v1/sending_domains/:id/verify

Queue another DNS check.

  • id: Sending domain id
request.sh
1 curl -sS -X POST \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 https://postshiba.com/api/v1/sending_domains/:sending_domain_id/verify
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": false,
15 "primary": false
16 }

POST /api/v1/sending_domains/:id/suspend

Pause sending for this domain. Same as SendingDomain#suspend!.

  • id: Sending domain id
request.sh
1 curl -sS -X POST \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 https://postshiba.com/api/v1/sending_domains/:sending_domain_id/suspend
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": true,
15 "primary": false
16 }

POST /api/v1/sending_domains/:id/resume

Resume sending for this domain. Same as SendingDomain#resume!.

  • id: Sending domain id
request.sh
1 curl -sS -X POST \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 https://postshiba.com/api/v1/sending_domains/:sending_domain_id/resume
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": false,
15 "primary": false
16 }

POST /api/v1/sending_domains/:id/make_primary

Make this the account primary. Outbound mail is also DKIM-signed with this domain. Same as Team#assign_primary!.

  • id: Sending domain id
request.sh
1 curl -sS -X POST \
2 -H 'Authorization: Bearer YOUR_API_KEY' \
3 -H 'Content-Type: application/json' \
4 https://postshiba.com/api/v1/sending_domains/:sending_domain_id/make_primary
response.json
1 {
2 "id": 8,
3 "name": "mail.example.com",
4 "tenant_id": 12,
5 "tenant": "default",
6 "dkim_status": "pending",
7 "spf_status": "pending",
8 "return_path_status": "pending",
9 "dkim_cname_host": "s1._domainkey.mail.example.com",
10 "dkim_cname_target": "1-8.dkim.capsule.test",
11 "spf_record": "v=spf1 include:spf.capsule.test ~all",
12 "return_path_host": "rp.mail.example.com",
13 "return_path_target": "rp.capsule.test",
14 "suspended": false,
15 "primary": true
16 }

About

PostShiba is the transactional email platform that powers Bento behind the scenes. You can build your own products, like Bento, on top of it.

© 2026 PostShiba by Backpack Internet Pty. Ltd. All rights reserved.

The same policies that govern Bento are applied to PostShiba Privacy | Terms | Security