Upload a sending domain's sender logo
Replace the identity's logo with an SVG. The file is rebuilt into the SVG Tiny PS profile mailboxes require: editor bookkeeping and unsupported attributes are dropped, and the result is what the URL serves. It must be square, draw with shapes rather than <text> (convert text to outlines), reference nothing outside itself, and come to at most 32 KB once rebuilt. A file that cannot be rebuilt answers 422 validation_error with a detail naming what to change, and the previous logo stays in place.
A mailbox that supports BIMI shows this logo beside mail from the identity, once two DNS records are in place: a default._bimi.<host> TXT record naming the logo's URL (returned as bimi_record), and a DMARC policy of p=quarantine or p=reject applied to all mail. readiness is a fresh reading of both from public DNS. Yahoo and AOL show the logo once both are right; Gmail and Apple Mail also require a Verified Mark Certificate, which Sendly does not issue.
The URL is keyed by the identity and never changes, so the record is published once. Until a logo is uploaded it serves a default: the domain's initial on a coloured square. It serves nothing (serving is false) until the identity verifies, and nothing while the project is disabled.
Requires the domains:write scope — Add and remove sending domains, and trigger verification.
API key authentication. Use a sk_* (FULL) or pk_* (SENDING_ONLY) key as the bearer token. Public keys (pk_*) are restricted to the email-send endpoints and the self-serve list subscribe/unsubscribe pair; every other endpoint — event tracking included — answers 403 for them. In scope terms (used by /api/v1/* operations): FULL keys hold every scope; SENDING_ONLY keys hold only emails:send.
In: header
Path Parameters
Resource id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Body for PUT /api/v1/domains/{id}/logo.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X PUT "https://example.com/api/v1/domains/497f6eca-6276-4993-bfeb-53cbbbba6f08/logo" \ -H "Content-Type: application/json" \ -d '{ "svg": "string" }'{
"domain_id": "b2f7354f-b74d-4332-ab10-1a5e3c56466c",
"source": "uploaded",
"url": "http://example.com",
"serving": true,
"svg": "string",
"sha256": "string",
"size_bytes": 0,
"updated_at": "2019-08-24T14:15:22Z",
"bimi_record": {
"type": "TXT",
"name": "string",
"value": "string"
},
"readiness": {
"dmarc": {
"status": "enforced",
"policy": "string",
"pct": 0,
"found_at": "string"
},
"bimi_record": {
"status": "published",
"found_at": "string",
"location": "string"
}
}
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}{
"type": "http://example.com",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"code": "string",
"request_id": "string",
"errors": [
{
"pointer": "string",
"code": "string",
"message": "string"
}
]
}