curl -X POST https://win.oneshotagent.com/v1/tools/physical-mail/validate-address \
-H "Content-Type: application/json" \
-H "X-Agent-ID: 0xYourWalletAddress" \
-H "x-agent-proof: <base64 signed proof, scope=write>" \
-d '{
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107"
}'
import { OneShot } from "@oneshot-agent/sdk";
const agent = new OneShot({ privateKey: process.env.AGENT_PRIVATE_KEY });
const result = await agent.physicalMail.validateAddress({
name: "Jane Doe",
address_line1: "185 Berry St",
address_line2: "Suite 6100",
address_city: "San Francisco",
address_state: "CA",
address_zip: "94107",
});
console.log(result.deliverable);
result = client.physical_mail.validate_address({
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107",
})
print(result["deliverable"])
{
"deliverable": true,
"deliverability": "deliverable",
"address": {
"name": "Jane Doe",
"address_line1": "185 BERRY ST",
"address_line2": "STE 6100",
"address_city": "SAN FRANCISCO",
"address_state": "CA",
"address_zip": "94107",
"address_country": "US"
}
}
{
"error": "invalid_input",
"details": [
{ "path": "address_state", "message": "Invalid input" }
]
}
Physical Mail
Validate an address
Check that a U.S. postal address is deliverable before quoting mail to it
POST
/
v1
/
tools
/
physical-mail
/
validate-address
curl -X POST https://win.oneshotagent.com/v1/tools/physical-mail/validate-address \
-H "Content-Type: application/json" \
-H "X-Agent-ID: 0xYourWalletAddress" \
-H "x-agent-proof: <base64 signed proof, scope=write>" \
-d '{
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107"
}'
import { OneShot } from "@oneshot-agent/sdk";
const agent = new OneShot({ privateKey: process.env.AGENT_PRIVATE_KEY });
const result = await agent.physicalMail.validateAddress({
name: "Jane Doe",
address_line1: "185 Berry St",
address_line2: "Suite 6100",
address_city: "San Francisco",
address_state: "CA",
address_zip: "94107",
});
console.log(result.deliverable);
result = client.physical_mail.validate_address({
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107",
})
print(result["deliverable"])
{
"deliverable": true,
"deliverability": "deliverable",
"address": {
"name": "Jane Doe",
"address_line1": "185 BERRY ST",
"address_line2": "STE 6100",
"address_city": "SAN FRANCISCO",
"address_state": "CA",
"address_zip": "94107",
"address_country": "US"
}
}
{
"error": "invalid_input",
"details": [
{ "path": "address_state", "message": "Invalid input" }
]
}
Overview
Checks one U.S. address and returns whether it is deliverable, a deliverability code and the standardised address. Free. Changes nothing. A preview validates both addresses itself and refuses an undeliverable one with422 address_not_deliverable. Call this first to catch a bad address before uploading artwork.
Authentication
X-Agent-ID plus a signed x-agent-proof with scope: "write", or an access token. See proof authentication. 60 requests a minute per agent.
Request Body
string
required
Recipient name (1-100 characters)
string
required
Street address (1-200 characters)
string
Apartment, suite or unit
string
required
City
string
required
Two-letter state code, e.g.
CAstring
required
ZIP code, 5 digits or ZIP+4
string
Only
USResponse
boolean
true when mail can be delivered to the addressstring
deliverable or deliverable_unnecessary_unit when deliverable; otherwise a code saying why notobject
The standardised address, in the same shape as the request. The address as sent when it is undeliverable.
curl -X POST https://win.oneshotagent.com/v1/tools/physical-mail/validate-address \
-H "Content-Type: application/json" \
-H "X-Agent-ID: 0xYourWalletAddress" \
-H "x-agent-proof: <base64 signed proof, scope=write>" \
-d '{
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107"
}'
import { OneShot } from "@oneshot-agent/sdk";
const agent = new OneShot({ privateKey: process.env.AGENT_PRIVATE_KEY });
const result = await agent.physicalMail.validateAddress({
name: "Jane Doe",
address_line1: "185 Berry St",
address_line2: "Suite 6100",
address_city: "San Francisco",
address_state: "CA",
address_zip: "94107",
});
console.log(result.deliverable);
result = client.physical_mail.validate_address({
"name": "Jane Doe",
"address_line1": "185 Berry St",
"address_line2": "Suite 6100",
"address_city": "San Francisco",
"address_state": "CA",
"address_zip": "94107",
})
print(result["deliverable"])
{
"deliverable": true,
"deliverability": "deliverable",
"address": {
"name": "Jane Doe",
"address_line1": "185 BERRY ST",
"address_line2": "STE 6100",
"address_city": "SAN FRANCISCO",
"address_state": "CA",
"address_zip": "94107",
"address_country": "US"
}
}
{
"error": "invalid_input",
"details": [
{ "path": "address_state", "message": "Invalid input" }
]
}