Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.lob.com/v1
/addresses
Creates a new address given information
application/json
address_editable
multipart/form-data
address_editable
application/x-www-form-urlencoded
address_editable
Error
Echos the writable fields of a newly created address object.
POST /addresses
/bank_accounts
Creates a new bank account with the provided properties. Bank accounts created in live mode will need to be verified via micro deposits before being able to send live checks. The deposits will appear in the bank account in 2-3 business days and have the description “VERIFICATION”.
application/json
bank_account_base
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zipcode | string | optional |
| metadata | object | optional |
| signatory | string | required |
| description | string | optional |
| account_type | string | required |
| account_number | string | required |
| check_template | string | optional |
| routing_number | string | required |
| fractional_routing_number | string | optional |
multipart/form-data
bank_account_base
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zipcode | string | optional |
| metadata | object | optional |
| signatory | string | required |
| description | string | optional |
| account_type | string | required |
| account_number | string | required |
| check_template | string | optional |
| routing_number | string | required |
| fractional_routing_number | string | optional |
application/x-www-form-urlencoded
bank_account_base
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zipcode | string | optional |
| metadata | object | optional |
| signatory | string | required |
| description | string | optional |
| account_type | string | required |
| account_number | string | required |
| check_template | string | optional |
| routing_number | string | required |
| fractional_routing_number | string | optional |
Error
Returns a bank_account object
POST /bank_accounts
/bank_accounts/{bank_id}/verify
Verify a bank account in order to create a check.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| bank_id | path | required | id of the bank account to be verified |
application/json
bank_account_verify
| Property | Type | Required |
|---|---|---|
| amounts | array | required |
multipart/form-data
bank_account_verify
| Property | Type | Required |
|---|---|---|
| amounts | array | required |
application/x-www-form-urlencoded
bank_account_verify
| Property | Type | Required |
|---|---|---|
| amounts | array | required |
Error
Returns a bank_account object
POST /bank_accounts/{bank_id}/verify
/billing_groups
Creates a new billing_group with the provided properties.
application/json
billing_group_editable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| description | string | optional |
multipart/form-data
billing_group_editable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| description | string | optional |
application/x-www-form-urlencoded
billing_group_editable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| description | string | optional |
Error
Returns a billing group object
POST /billing_groups
/billing_groups/{bg_id}
Updates all editable attributes of the billing_group with the given id.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| bg_id | path | required | id of the billing_group |
application/json
billing_group_base
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| description | string | optional |
multipart/form-data
billing_group_base
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| description | string | optional |
application/x-www-form-urlencoded
billing_group_base
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| description | string | optional |
Error
Returns a billing group object
POST /billing_groups/{bg_id}
/buckslips/{buckslip_id}/orders
Creates a new buckslip order given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| buckslip_id | path | required | The ID of the buckslip to which the buckslip orders belong. |
application/json
buckslip_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
multipart/form-data
buckslip_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
application/x-www-form-urlencoded
buckslip_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
Error
Buckslip order created successfully
POST /buckslips/{buckslip_id}/orders
/buckslips
Creates a new buckslip given information
application/json
buckslip_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
multipart/form-data
buckslip_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
application/x-www-form-urlencoded
buckslip_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
Error
Buckslip created successfully
POST /buckslips
/campaigns
Creates a new campaign with the provided properties. See how to launch your first campaign here.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| x-lang-output | header | optional | string |
Default response is in English. |
application/json
campaign_writable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| metadata | object | optional |
| use_type | string | required |
| send_date | string | optional |
| description | string | optional |
| schedule_type | string | required |
| billing_group_id | string | optional |
| auto_cancel_if_ncoa | boolean | optional |
| target_delivery_date | string | optional |
| cancel_window_campaign_minutes | integer | optional |
multipart/form-data
campaign_writable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| metadata | object | optional |
| use_type | string | required |
| send_date | string | optional |
| description | string | optional |
| schedule_type | string | required |
| billing_group_id | string | optional |
| auto_cancel_if_ncoa | boolean | optional |
| target_delivery_date | string | optional |
| cancel_window_campaign_minutes | integer | optional |
application/x-www-form-urlencoded
campaign_writable
| Property | Type | Required |
|---|---|---|
| name | string | required |
| metadata | object | optional |
| use_type | string | required |
| send_date | string | optional |
| description | string | optional |
| schedule_type | string | required |
| billing_group_id | string | optional |
| auto_cancel_if_ncoa | boolean | optional |
| target_delivery_date | string | optional |
| cancel_window_campaign_minutes | integer | optional |
Error
Campaign created successfully
POST /campaigns
/campaigns/{cmp_id}/send
Sends a campaign. You need only supply the unique campaign identifier that was returned upon campaign creation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cmp_id | path | required | id of the campaign |
Error
Returns a campaign object
POST /campaigns/{cmp_id}/send
/cards/{card_id}/orders
Creates a new card order given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| card_id | path | required | The ID of the card to which the card orders belong. |
application/json
card_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
multipart/form-data
card_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
application/x-www-form-urlencoded
card_order_editable
| Property | Type | Required |
|---|---|---|
| quantity | integer | required |
Error
Card order created successfully
POST /cards/{card_id}/orders
/cards
Creates a new card given information
application/json
card_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
multipart/form-data
card_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
application/x-www-form-urlencoded
card_editable
| Property | Type | Required |
|---|---|---|
| size | string | optional |
| description | string | optional |
| back | object | optional |
| front | object | required |
Error
Card created successfully
POST /cards
/cards/{card_id}
Update the details of an existing card. You need only supply the unique identifier that was returned upon card creation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| card_id | path | required | id of the card |
application/json
card_updatable
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| auto_reorder | boolean | optional |
| reorder_quantity | number | optional |
multipart/form-data
card_updatable
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| auto_reorder | boolean | optional |
| reorder_quantity | number | optional |
application/x-www-form-urlencoded
card_updatable
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| auto_reorder | boolean | optional |
| reorder_quantity | number | optional |
Error
Returns a card object
POST /cards/{card_id}
/checks
Creates a new check with the provided properties.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| Idempotency-Key | header | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| idempotency_key | query | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
application/json
check_editable
multipart/form-data
check_editable
application/x-www-form-urlencoded
check_editable
Error
Returns a check object
POST /checks
/creatives
Creates a new creative with the provided properties
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| x-lang-output | header | optional | string |
Default response is in English. |
application/json
creative_writable
multipart/form-data
creative_writable
application/x-www-form-urlencoded
creative_writable
Error
Creative created successfully
POST /creatives
/identity_validation
Validates whether a given name is associated with an address.
application/json
identity_validation_writable
multipart/form-data
identity_validation_writable
application/x-www-form-urlencoded
identity_validation_writable
Error
Returns the likelihood a given name is associated with an address.
POST /identity_validation
/intl_autocompletions
Given an address prefix consisting of a partial primary line and country, as well as optional input of city, state, and zip code, this functionality returns up to 10 full International address suggestions. Not all of them will turn out to be valid addresses; they’ll need to be verified.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| x-lang-output | header | optional | string |
Default response is in English. |
application/json
intl_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| country | string | required |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
multipart/form-data
intl_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| country | string | required |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
application/x-www-form-urlencoded
intl_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| country | string | required |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
Error
Returns an international autocompletions object.
POST /intl_autocompletions
/intl_verifications
Verify an international (except US or US territories) address with a live API key. Requests to this endpoint with a test API key will return a dummy response based on the primary line you input.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| x-lang-output | header | optional | string |
Default response is in English. |
application/json
intl_verification_writable
multipart/form-data
intl_verification_writable
application/x-www-form-urlencoded
intl_verification_writable
Error
Returns an international verification object.
POST /intl_verifications
/bulk/intl_verifications
Verify a list of international (except US or US territories) address with a live API key. Requests to this endpoint with a test API key will return a dummy response based on the primary line you input.
application/json
intl_verifications_payload
| Property | Type | Required |
|---|---|---|
| addresses | array | required |
| └ recipient | string | optional |
| └ primary_line | string | required |
| └ secondary_line | string | optional |
| └ city | string | optional |
| └ state | string | optional |
| └ country | string | required |
| └ postal_code | string | optional |
multipart/form-data
intl_verifications_payload
| Property | Type | Required |
|---|---|---|
| addresses | array | required |
| └ recipient | string | optional |
| └ primary_line | string | required |
| └ secondary_line | string | optional |
| └ city | string | optional |
| └ state | string | optional |
| └ country | string | required |
| └ postal_code | string | optional |
Error
Returns an array of international verification objects.
POST /bulk/intl_verifications
/letters
Creates a new letter given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| Idempotency-Key | header | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| idempotency_key | query | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| Lob-Version | header | optional | string | A string representing the version of the API being used. For more information on versioning, refer to our Versioning and Changelog documentation. |
application/json
letter_editable
| Property | Type | Required |
|---|---|---|
| to | object | required |
| from | object | required |
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| fsc | boolean | optional |
| file | object | required |
| size | string | optional |
| cards | array | optional |
| color | boolean | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| double_sided | boolean | optional |
| extra_service | string | optional |
| custom_envelope | string | optional |
| perforated_page | integer | optional |
| return_envelope | object | optional |
| billing_group_id | string | optional |
| …1 more | object | optional |
multipart/form-data
letter_editable
| Property | Type | Required |
|---|---|---|
| to | object | required |
| from | object | required |
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| fsc | boolean | optional |
| file | object | required |
| size | string | optional |
| cards | array | optional |
| color | boolean | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| double_sided | boolean | optional |
| extra_service | string | optional |
| custom_envelope | string | optional |
| perforated_page | integer | optional |
| return_envelope | object | optional |
| billing_group_id | string | optional |
| …1 more | object | optional |
application/x-www-form-urlencoded
letter_editable
| Property | Type | Required |
|---|---|---|
| to | object | required |
| from | object | required |
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| fsc | boolean | optional |
| file | object | required |
| size | string | optional |
| cards | array | optional |
| color | boolean | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| double_sided | boolean | optional |
| extra_service | string | optional |
| custom_envelope | string | optional |
| perforated_page | integer | optional |
| return_envelope | object | optional |
| billing_group_id | string | optional |
| …1 more | object | optional |
Error
Returns a letter object
POST /letters
/postcards
Creates a new postcard given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| Idempotency-Key | header | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| idempotency_key | query | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
application/json
postcard_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| back | object | required |
| front | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
multipart/form-data
postcard_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| back | object | required |
| front | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
application/x-www-form-urlencoded
postcard_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| back | object | required |
| front | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
Error
Returns a postcard object
POST /postcards
/us_reverse_geocode_lookups
Reverse geocode a valid US location with a live API key.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| size | query | optional | integer | Determines the number of locations returned. Possible values are between 1 and 50 and any number higher will be rounded down to 50. Default size is a list of 5 reverse geocoded locations. |
application/json
location
| Property | Type | Required |
|---|---|---|
| latitude | number | required |
| longitude | number | required |
multipart/form-data
location
| Property | Type | Required |
|---|---|---|
| latitude | number | required |
| longitude | number | required |
application/x-www-form-urlencoded
location
| Property | Type | Required |
|---|---|---|
| latitude | number | required |
| longitude | number | required |
Error
Returns a zip lookup object if a valid zip was provided.
POST /us_reverse_geocode_lookups
/self_mailers
Creates a new self_mailer given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| Idempotency-Key | header | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| idempotency_key | query | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
application/json
self_mailer_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| inside | object | required |
| outside | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
multipart/form-data
self_mailer_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| inside | object | required |
| outside | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
application/x-www-form-urlencoded
self_mailer_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| fsc | boolean | optional |
| inside | object | required |
| outside | object | required |
| qr_code | object | optional |
| └ top | string | optional |
| └ left | string | optional |
| └ pages | string | optional |
| └ right | string | optional |
| └ width | string | required |
| └ bottom | string | optional |
| └ position | string | required |
| └ redirect_url | string | required |
| use_type | string | required |
| billing_group_id | string | optional |
Error
Returns a self_mailer object
POST /self_mailers
/snap_packs
Creates a new snap_pack given information
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| Idempotency-Key | header | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
| idempotency_key | query | optional | string | A string of no longer than 256 characters that uniquely identifies this resource. For more help integrating idempotency keys, refer to our implementation guide. |
application/json
snap_pack_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| color | boolean | optional |
| inside | object | required |
| outside | object | required |
| use_type | string | required |
| billing_group_id | string | optional |
multipart/form-data
snap_pack_editable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| mail_type | string | optional |
| send_date | string | optional |
| description | string | optional |
| merge_variables | object | optional |
| size | string | optional |
| to | object | required |
| from | object | optional |
| color | boolean | optional |
| inside | object | required |
| outside | object | required |
| use_type | string | required |
| billing_group_id | string | optional |
Error
Returns a snap_pack object
POST /snap_packs
/templates/{tmpl_id}/versions
Creates a new template version attached to the specified template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tmpl_id | path | required | The ID of the template the new version will be attached to |
application/json
template_version_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
multipart/form-data
template_version_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
application/x-www-form-urlencoded
template_version_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
Error
Returns the template version with the given template and version ids.
POST /templates/{tmpl_id}/versions
/templates/{tmpl_id}/versions/{vrsn_id}
Updates the template version with the given template and version ids.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tmpl_id | path | required | The ID of the template to which the version belongs. |
|
| vrsn_id | path | required | id of the template_version |
application/json
template_version_updatable
| Property | Type | Required |
|---|---|---|
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
multipart/form-data
template_version_updatable
| Property | Type | Required |
|---|---|---|
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
application/x-www-form-urlencoded
template_version_updatable
| Property | Type | Required |
|---|---|---|
| engine | string | optional |
| description | string | optional |
| required_vars | array | optional |
Error
Returns the template version with the given template and version ids.
POST /templates/{tmpl_id}/versions/{vrsn_id}
/templates
Creates a new template for use with the Print & Mail API. In Live mode, you can only have as many non-deleted templates as allotted in your current Print & Mail Edition. If you attempt to create a template past your limit, you will receive a 403 error. There is no limit in Test mode.
application/json
template_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| metadata | object | optional |
| description | string | optional |
| required_vars | array | optional |
multipart/form-data
template_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| metadata | object | optional |
| description | string | optional |
| required_vars | array | optional |
application/x-www-form-urlencoded
template_writable
| Property | Type | Required |
|---|---|---|
| html | string | required |
| engine | string | optional |
| metadata | object | optional |
| description | string | optional |
| required_vars | array | optional |
Error
Returns a template object
POST /templates
/templates/{tmpl_id}
Updates the description and/or published version of the template with the given id. To update the template’s html, create a new version of the template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tmpl_id | path | required | id of the template |
application/json
template_update
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| published_version | string | optional |
multipart/form-data
template_update
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| published_version | string | optional |
application/x-www-form-urlencoded
template_update
| Property | Type | Required |
|---|---|---|
| description | string | optional |
| published_version | string | optional |
Error
Returns the updated template object
POST /templates/{tmpl_id}
/domains
Add a new custom domain that can be used to create custom links.
application/json
domains
| Property | Type | Required |
|---|---|---|
| domain | string | required |
multipart/form-data
domains
| Property | Type | Required |
|---|---|---|
| domain | string | required |
application/x-www-form-urlencoded
domains
| Property | Type | Required |
|---|---|---|
| domain | string | required |
Error
Returns a domain object with details.
POST /domains
/links/shorten
Given a long URL, shorten your URL either by using a custom domain or Lob’s own short domain.
application/json
link_single
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
multipart/form-data
link_single
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
application/x-www-form-urlencoded
link_single
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
Error
Returns a successfully created link.
POST /links/shorten
/links/shorten/bulk
Shortens a list of links in a single request.
application/json
link_list
of object
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
multipart/form-data
link_list
of object
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
application/x-www-form-urlencoded
link_list
of object
| Property | Type | Required |
|---|---|---|
| slug | string | optional |
| domain | string | optional |
| metadata_tag | object | optional |
| redirect_link | string | required |
| billing_group_id | string | optional |
Error
Returns all successfully created links
POST /links/shorten/bulk
/us_autocompletions
Given an address prefix consisting of a partial primary line, as well as optional input of city, state, and zip code, this functionality returns up to 10 full US address suggestions. Not all of them will turn out to be valid addresses; they’ll need to be verified.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| case | query | optional | string | Casing of the verified address. Possible values are |
| valid_addresses | query | optional | boolean | Possible values are |
application/json
us_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
multipart/form-data
us_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
application/x-www-form-urlencoded
us_autocompletions_writable
| Property | Type | Required |
|---|---|---|
| city | string | optional |
| state | string | optional |
| zip_code | string | optional |
| geo_ip_sort | boolean | optional |
| address_prefix | string | required |
Error
Returns a US autocompletion object.
POST /us_autocompletions
/us_verifications
Verify a US or US territory address with a live API key. The address can be in components (e.g. primary_line is “210 King Street”, zip_code is “94107”) or as a single string (e.g. “210 King Street 94107”), but not as both. Requests using a test API key validate required fields but return empty values unless specific primary_line values are provided. See the US Verifications Test Environment for details.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| case | query | optional | string | Casing of the verified address. Possible values are |
application/json
us_verifications_writable
multipart/form-data
us_verifications_writable
application/x-www-form-urlencoded
us_verifications_writable
Error
Returns a US verification object.
POST /us_verifications
/bulk/us_verifications
Verify a list of US or US territory addresses with a live API key. Requests to this endpoint with a test API key will return a dummy response based on the primary line you input.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| case | query | optional | string | Casing of the verified address. Possible values are |
application/json
multiple_components_list
| Property | Type | Required |
|---|---|---|
| addresses | array | required |
| └ city | string | optional |
| └ state | string | optional |
| └ zip_code | string | optional |
| └ recipient | string | optional |
| └ primary_line | string | required |
| └ urbanization | string | optional |
| └ secondary_line | string | optional |
multipart/form-data
multiple_components_list
| Property | Type | Required |
|---|---|---|
| addresses | array | required |
| └ city | string | optional |
| └ state | string | optional |
| └ zip_code | string | optional |
| └ recipient | string | optional |
| └ primary_line | string | required |
| └ urbanization | string | optional |
| └ secondary_line | string | optional |
application/x-www-form-urlencoded
multiple_components_list
| Property | Type | Required |
|---|---|---|
| addresses | array | required |
| └ city | string | optional |
| └ state | string | optional |
| └ zip_code | string | optional |
| └ recipient | string | optional |
| └ primary_line | string | required |
| └ urbanization | string | optional |
| └ secondary_line | string | optional |
Error
Returns a list of US verification objects.
POST /bulk/us_verifications
/uploads
Creates a new upload with the provided properties.
application/json
upload_writable
| Property | Type | Required |
|---|---|---|
| metadata | object | optional |
| └ columns | array | required |
| campaignId | string | required |
| mergeVariableColumnMapping | object | optional |
| optionalAddressColumnMapping | object | optional |
| └ company | string | required |
| └ address_line2 | string | required |
| └ address_country | string | required |
| requiredAddressColumnMapping | object | optional |
| └ name | string | required |
| └ address_zip | string | required |
| └ address_city | string | required |
| └ address_line1 | string | required |
| └ address_state | string | required |
Upload created successfully
Validation Error
POST /uploads
/uploads/{upl_id}/exports
Campaign Exports can help you understand exactly which records in a campaign could not be created. By initiating and retrieving an export, you will get row-by-row errors for your campaign. For a step-by-step walkthrough of creating a campaign and exporting failures, see our Campaigns Guide.
Create an export file associated with an upload.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| upl_id | path | required | ID of the upload |
application/json
UploadsCreateExportFileRequest
| Property | Type | Required |
|---|---|---|
| type | string | optional |
Create Export Error
Successful Response
POST /uploads/{upl_id}/exports
/uploads/{upl_id}/file
Upload an audience file and associate it with an upload.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| upl_id | path | required | ID of the upload |
multipart/form-data
UploadFileRequest
| Property | Type | Required |
|---|---|---|
| file | string | optional |
Successful Response
Validation Error
POST /uploads/{upl_id}/file
/us_zip_lookups
Returns information about a ZIP code
application/json
zip5
| Property | Type | Required |
|---|---|---|
| zip_code | string | required |
multipart/form-data
zip5
| Property | Type | Required |
|---|---|---|
| zip_code | string | required |
application/x-www-form-urlencoded
zip5
| Property | Type | Required |
|---|---|---|
| zip_code | string | required |
Error
Returns a zip lookup object if a valid zip was provided.
POST /us_zip_lookups
AddressesListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/address"
},
"description": "list of addresses"
}
}
}
]
}
BankAccountsGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/bank_account"
},
"description": "list of bank_accounts"
}
}
}
]
}
BillingGroupsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/billing_group"
},
"description": "list of billing_groups"
}
}
}
]
}
BuckslipOrdersGetByBuckslipIdResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/buckslip_order"
},
"description": "List of buckslip orders"
}
}
}
]
}
BuckslipsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/buckslip"
},
"description": "list of buckslips"
}
}
}
]
}
CampaignDeleteResponse
{
"properties": {
"id": {
"$ref": "#/components/schemas/cmp_id"
},
"deleted": {
"type": "boolean",
"description": "True if the resource has been successfully deleted."
}
},
"description": "Lob uses RESTful HTTP response codes to indicate success or failure of an API request. In general, 2xx indicates success, 4xx indicate an input error, and 5xx indicates an error on Lob's end."
}
CampaignsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/campaign"
},
"description": "list of campaigns"
}
}
}
]
}
CardOrdersGetResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/card_order"
},
"description": "List of card orders"
}
}
}
]
}
CardsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/card"
},
"description": "list of cards"
}
}
}
]
}
ChecksListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/check"
},
"description": "list of checks"
}
}
}
]
}
ExportRetrieveResponse
{
"type": "object",
"required": [
"id",
"dateCreated",
"dateModified",
"deleted",
"s3Url",
"state",
"type",
"uploadId"
],
"properties": {
"id": {
"$ref": "#/components/schemas/ex_id"
},
"type": {
"enum": [
"all",
"failures",
"successes"
],
"type": "string",
"description": "The export file type, which can be `all`, `failures` or `successes`."
},
"s3Url": {
"type": "string",
"description": "The URL for the generated export file."
},
"state": {
"enum": [
"in_progress",
"failed",
"succeeded"
],
"type": "string",
"description": "The state of the export file, which can be `in_progress`, `failed` or `succeeded`."
},
"deleted": {
"type": "boolean",
"description": "Returns as `true` if the resource has been successfully deleted."
},
"uploadId": {
"$ref": "#/components/schemas/upl_id"
},
"dateCreated": {
"type": "string",
"format": "date-time",
"description": "A timestamp in ISO 8601 format of the date the export was created"
},
"dateModified": {
"type": "string",
"format": "date-time",
"description": "A timestamp in ISO 8601 format of the date the export was last modified"
}
}
}
LettersListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/letter"
},
"description": "list of letters"
}
}
}
]
}
PostcardsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/postcard"
},
"description": "list of postcards"
}
}
}
]
}
QrCodesGetSortedQrCodesResponse
{
"allOf": [
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/qr_code_scans"
},
"description": "List of QR code analytics"
},
"count": {
"$ref": "#/components/schemas/count"
},
"object": {
"$ref": "#/components/schemas/object"
},
"total_count": {
"type": "integer",
"description": "Indicates the total number of records. Provided when the request specifies an \"include\" query parameter"
},
"scanned_count": {
"type": "integer",
"description": "Indicates the number of QR Codes out of `count` that were scanned atleast once."
}
}
}
]
}
ReportRetrieve403Response
{
"type": "object",
"properties": {
"code": {
"type": "number",
"description": "The error code"
},
"message": {
"type": "string",
"description": "Details of the error message with the feature flagged mentioned."
}
}
}
ReportRetrieveResponse
{
"type": "object",
"required": [
"data",
"count",
"offset",
"total_count"
],
"properties": {
"data": {
"type": "array",
"items": {
"properties": {
"status": {
"enum": [
"Validated",
"Failed",
"Processing"
],
"type": "string",
"description": "The processing status of line item."
},
"rowNumber": {
"type": "number",
"title": "Row Number",
"description": "The row number of the csv file containing this data."
},
"mailpieceId": {
"type": "string",
"nullable": true,
"description": "The mailpiece id created from the line item when it was validated."
},
"errorMessage": {
"type": "string",
"nullable": true,
"description": "The error message detailing the reason why processing the line item failed."
},
"originalData": {
"type": "object",
"description": "Key-value pairs where each key is the column header and each value is the value of the column for the row."
}
}
}
},
"count": {
"$ref": "#/components/schemas/count"
},
"next_url": {
"type": "string",
"nullable": true,
"description": "Url of next page of items in list."
},
"prev_url": {
"type": "string",
"nullable": true,
"description": "Url of previous page of items in list."
},
"total_count": {
"type": "integer",
"description": "Indicates the total number of records. Provided when the request specifies an \"include\" query parameter"
}
}
}
SelfMailersGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/self_mailer"
},
"description": "list of self_mailers"
}
}
}
]
}
TemplateVersionsGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/template_version"
},
"description": "list of template versions"
}
}
}
]
}
TemplatesListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/list"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/template"
},
"description": "list of templates"
}
}
}
]
}
UploadCreateResponse
{
"type": "object",
"title": "HTTPValidationError",
"properties": {
"detail": {
"type": "array",
"items": {
"type": "object",
"title": "ValidationError",
"required": [
"loc",
"msg",
"type"
],
"properties": {
"loc": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
}
},
"title": "Detail"
}
}
}
UploadFileRequest
{
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
UploadsCreateExportFileRequest
{
"type": "object",
"properties": {
"type": {
"enum": [
"all",
"failures",
"successes"
],
"type": "string"
}
}
}
UploadsCreateExportFileResponse
{
"type": "object",
"example": {
"code": 400,
"errors": [
"type must be a string"
],
"message": "Invalid body, check 'errors' property for more info."
},
"required": [
"code",
"message",
"errors"
],
"properties": {
"code": {
"enum": [
400,
404
],
"type": "number",
"description": "A conventional HTTP status code"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of pre-defined strings that identify an error"
},
"message": {
"type": "string",
"description": "A human-readable message with more details about the error"
}
}
}
UploadsListResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/upload"
}
}
address
{
"oneOf": [
{
"$ref": "#/components/schemas/address_us"
},
{
"$ref": "#/components/schemas/address_intl"
}
]
}
address_deletion
{
"properties": {
"id": {
"$ref": "#/components/schemas/adr_id"
},
"deleted": {
"$ref": "#/components/schemas/deleted"
}
},
"description": "Lob uses RESTful HTTP response codes to indicate success or failure of an API request. In general, 2xx indicates success, 4xx indicate an input error, and 5xx indicates an error on Lob's end."
}
address_editable
{
"oneOf": [
{
"$ref": "#/components/schemas/address_editable_us"
},
{
"$ref": "#/components/schemas/address_editable_intl"
}
]
}
address_editable_intl
{
"allOf": [
{
"$ref": "#/components/schemas/address_fields_intl"
},
{
"type": "object",
"anyOf": [
{
"title": "address obj with `name` defined",
"required": [
"name"
]
},
{
"title": "address obj with `company` defined",
"required": [
"company"
]
}
],
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Either `name` or `company` is required, you may also add both. Must be no longer than 40 characters. If both `name` and `company` are provided, they will be printed on two separate lines above the rest of the address.\n"
},
"email": {
"type": "string",
"nullable": true,
"maxLength": 100,
"description": "Must be no longer than 100 characters."
},
"phone": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Must be no longer than 40 characters."
},
"company": {
"$ref": "#/components/schemas/company"
},
"metadata": {
"$ref": "#/components/schemas/metadata"
},
"description": {
"$ref": "#/components/schemas/resource_description"
},
"address_country": {
"$ref": "#/components/schemas/country_extended"
}
}
}
]
}
address_editable_us
{
"allOf": [
{
"$ref": "#/components/schemas/address_fields_us"
},
{
"type": "object",
"anyOf": [
{
"title": "address obj with `name` defined",
"required": [
"name"
]
},
{
"title": "address obj with `company` defined",
"required": [
"company"
]
}
],
"properties": {
"name": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Either `name` or `company` is required, you may also add both. Must be no longer than 40 characters. If both `name` and `company` are provided, they will be printed on two separate lines above the rest of the address.\n"
},
"email": {
"type": "string",
"nullable": true,
"maxLength": 100,
"description": "Must be no longer than 100 characters."
},
"phone": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Must be no longer than 40 characters."
},
"company": {
"$ref": "#/components/schemas/company"
},
"metadata": {
"$ref": "#/components/schemas/metadata"
},
"description": {
"$ref": "#/components/schemas/resource_description"
},
"address_country": {
"enum": [
"US"
],
"type": "string",
"default": "US"
}
}
}
]
}
address_fields_intl
{
"type": "object",
"required": [
"address_line1",
"address_country"
],
"properties": {
"address_zip": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Optional postal code."
},
"address_city": {
"type": "string",
"nullable": true,
"maxLength": 200
},
"address_line1": {
"type": "string",
"maxLength": 200,
"description": "The primary number, street name, and directional information."
},
"address_line2": {
"type": "string",
"nullable": true,
"maxLength": 200,
"description": "An optional field containing any information which can't fit into line 1."
},
"address_state": {
"type": "string",
"nullable": true,
"maxLength": 200
}
}
}
address_fields_us
{
"type": "object",
"required": [
"address_line1",
"address_city",
"address_state",
"address_zip"
],
"properties": {
"address_zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "Must follow the ZIP format of `12345` or ZIP+4 format of `12345-1234`.\n"
},
"address_city": {
"type": "string",
"maxLength": 200
},
"address_line1": {
"type": "string",
"maxLength": 64,
"description": "The primary number, street name, and directional information."
},
"address_line2": {
"type": "string",
"nullable": true,
"maxLength": 64,
"description": "An optional field containing any information which can't fit into line 1."
},
"address_state": {
"type": "string",
"pattern": "^[a-zA-Z]{2}$",
"description": "2 letter state short-name code"
}
}
}
address_intl
{
"allOf": [
{
"$ref": "#/components/schemas/lob_base"
},
{
"type": "object",
"anyOf": [
{
"title": "address obj with `name` defined",
"required": [
"name"
]
},
{
"title": "address obj with `company` defined",
"required": [
"company"
]
}
],
"example": {
"id": "adr_e68217bd744d65c8X",
"name": "Harry Zhang",
"email": "harry@lob.com",
"phone": "5555555555",
"company": "Lob",
"metadata": {},
"address_zip": "C1N 1C4",
"description": "Harry - Office",
"address_city": "SUMMERSIDE",
"address_line1": "370 WATER ST",
"address_line2": "",
"address_state": "PRINCE EDWARD ISLAND",
"address_country": "CANADA"
},
"required": [
"id",
"address_line1",
"address_country"
],
"properties": {
"id": {
"$ref": "#/components/schemas/adr_id"
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Either `name` or `company` is required, you may also add both. Must be no longer than 40 characters. If both `name` and `company` are provided, they will be printed on two separate lines above the rest of the address.\n"
},
"email": {
"type": "string",
"nullable": true,
"maxLength": 100,
"description": "Must be no longer than 100 characters."
},
"phone": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Must be no longer than 40 characters."
},
"object": {
"enum": [
"address"
],
"type": "string",
"default": "address",
"description": "Value is resource type."
},
"company": {
"$ref": "#/components/schemas/company"
},
"metadata": {
"$ref": "#/components/schemas/metadata"
},
"address_zip": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Optional postal code."
},
"description": {
"$ref": "#/components/schemas/resource_description"
},
"address_city": {
"type": "string",
"nullable": true,
"maxLength": 200
},
"address_line1": {
"type": "string",
"maxLength": 200
},
"address_line2": {
"type": "string",
"nullable": true,
"maxLength": 200
},
"address_state": {
"type": "string",
"nullable": true,
"maxLength": 200,
"description": "Will be returned as a full string"
},
"address_country": {
"enum": [
"AFGHANISTAN",
"ALBANIA",
"ALGERIA",
"AMERICAN SAMOA",
"ANDORRA",
"ANGOLA",
"ANGUILLA",
"ANTARCTICA",
"ANTIGUA AND BARBUDA",
"ARGENTINA",
"ARUBA",
"AUSTRALIA",
"AUSTRIA",
"AZERBAIJAN",
"BAHRAIN",
"BANGLADESH",
"BARBADOS",
"BELARUS",
"BELGIUM",
"BELIZE",
"BENIN",
"BERMUDA",
"BHUTAN",
"BOLIVIA (PLURINATIONAL STATE OF)",
"BONAIRE, SAINT EUSTATIUS AND SABA",
"BOSNIA AND HERZEGOVINA",
"BOTSWANA",
"BRAZIL",
"BRITISH INDIAN OCEAN TERRITORY",
"BRITISH VIRGIN ISLANDS",
"BRUNEI DARUSSALAM",
"BULGARIA",
"BURKINA FASO",
"BURUNDI",
"CABO VERDE",
"CAMBODIA",
"CAMEROON",
"CANADA",
"CAYMAN ISLANDS",
"CENTRAL AFRICAN REPUBLIC",
"CHAD",
"CHILE",
"CHINA",
"COLOMBIA",
"COMOROS",
"CONGO",
"CONGO, DEMOCRATIC REPUBLIC OF THE",
"COOK ISLANDS",
"COSTA RICA",
"CÔTE D'IVOIRE",
"CROATIA",
"CUBA",
"CURAÇAO",
"CYPRUS",
"CZECH REPUBLIC",
"DENMARK",
"DJIBOUTI",
"DOMINICA",
"DOMINICAN REPUBLIC",
"ECUADOR",
"EGYPT",
"EL SALVADOR",
"EQUATORIAL GUINEA",
"ERITREA",
"ESTONIA",
"ESWATINI",
"ETHIOPIA",
"FALKLAND ISLANDS (MALVINAS)",
"FAROE ISLANDS",
"FIJI",
"FINLAND",
"FRANCE",
"GABON",
"GAMBIA",
"GEORGIA",
"GERMANY",
"GHANA",
"GIBRALTAR",
"GREECE",
"GREENLAND",
"GRENADA",
"GUATEMALA",
"GUINEA",
"GUINEA-BISSAU",
"GUYANA",
"HAITI",
"HOLY SEE",
"HONDURAS",
"HONG KONG",
"HUNGARY",
"ICELAND",
"INDIA",
"INDONESIA",
"IRAN (ISLAMIC REPUBLIC OF)",
"IRAQ",
"IRELAND",
"ISRAEL",
"ITALY",
"JAMAICA",
"JAPAN",
"JORDAN",
"KAZAKHSTAN",
"KENYA",
"KIRIBATI",
"KOREA (DEMOCRATIC PEOPLE’S REPUBLIC OF)",
"KOREA, REPUBLIC OF",
"KUWAIT",
"KYRGYZSTAN",
"LAO PEOPLE’S DEMOCRATIC REPUBLIC",
"LATVIA",
"LEBANON",
"LESOTHO",
"LIBERIA",
"LIBYA",
"LIECHTENSTEIN",
"LITHUANIA",
"LUXEMBOURG",
"MACAO",
"MACEDONIA",
"MADAGASCAR",
"MALAWI",
"MALAYSIA",
"MALDIVES",
"MALI",
"MALTA",
"MAURITANIA",
"MAURITIUS",
"MEXICO",
"MOLDOVA, REPUBLIC OF",
"MONACO",
"MONGOLIA",
"MONTENEGRO",
"MONTSERRAT",
"MOROCCO",
"MOZAMBIQUE",
"MYANMAR",
"NAMIBIA",
"NAURU",
"NEPAL",
"NETHERLAND ANTILLES",
"NETHERLANDS",
"NEW ZEALAND",
"NICARAGUA",
"NIGER",
"NIGERIA",
"NIUE",
"NORFOLK ISLAND",
"NORWAY",
"OMAN",
"PAKISTAN",
"PANAMA",
"PAPUA NEW GUINEA",
"PARAGUAY",
"PERU",
"PHILIPPINES",
"PITCAIRN",
"POLAND",
"PORTUGAL",
"QATAR",
"ROMANIA",
"RUSSIAN FEDERATION",
"RWANDA",
"SAINT HELENA",
"SAINT KITTS AND NEVIS",
"SAINT LUCIA",
"SAINT VINCENT AND THE GRENADINES",
"SAMOA",
"SAN MARINO",
"SAO TOME AND PRINCIPE",
"SAUDI ARABIA",
"SENEGAL",
"SERBIA",
"SEYCHELLES",
"SIERRA LEONE",
"SINGAPORE",
"SINT MAARTEN",
"SLOVAKIA",
"SLOVENIA",
"SOLOMON ISLANDS",
"SOMALIA",
"SOUTH AFRICA",
"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS",
"SOUTH SUDAN",
"SPAIN",
"SRI LANKA",
"SUDAN",
"SURINAME",
"SWEDEN",
"SWITZERLAND",
"SYRIAN ARAB REPUBLIC",
"TAIWAN",
"TAJIKISTAN",
"TANZANIA",
"THAILAND",
"THE BAHAMAS",
"TIMOR-LESTE",
"TOGO",
"TOKELAU",
"TONGA",
"TRINIDAD AND TOBAGO",
"TUNISIA",
"TURKEY",
"TURKMENISTAN",
"TURKS AND CAICOS ISLANDS",
"TUVALU",
"UGANDA",
"UKRAINE",
"UNITED ARAB EMIRATES",
"UNITED KINGDOM",
"URUGUAY",
"UZBEKISTAN",
"VANUATU",
"VENEZUELA",
"VIET NAM",
"WESTERN SAHARA",
"YEMEN",
"ZAMBIA",
"ZIMBABWE"
],
"type": "string",
"maxLength": 200,
"description": "Full name of country"
}
}
}
]
}
address_placement
{
"enum": [
"top_first_page",
"insert_blank_page",
"bottom_first_page_center",
"bottom_first_page"
],
"type": "string",
"default": "top_first_page",
"description": "Specifies the location of the address information that will show through the double-window envelope. To see how this will impact your letter design, view our letter template.\nSome values are exclusive to certain customers. Upgrade to the appropriate <a href=\"https://dashboard.lob.com/#/settings/editions\" target=\"_blank\">Print & Mail Edition</a> to gain access.\n * `top_first_page` - (default) print address information at the top of your provided first page\n * `insert_blank_page` - insert a blank address page at the beginning of your file (you will be charged for the extra page)\n * `bottom_first_page_center` - **(exclusive, deprecation planned within a few months)** print address information at the bottom center of your provided first page\n * `bottom_first_page` - **(exclusive)** print address information at the bottom of your provided first page\n"
}
address_types
{
"enum": [
"address.created",
"address.deleted"
],
"type": "string",
"description": "Unique identifier referring to status of address"
}
address_us
{
"allOf": [
{
"$ref": "#/components/schemas/lob_base"
},
{
"type": "object",
"anyOf": [
{
"title": "address obj with `name` defined",
"required": [
"name"
]
},
{
"title": "address obj with `company` defined",
"required": [
"company"
]
}
],
"example": {
"id": "adr_e68217bd744d65c8",
"name": "HARRY ZHANG",
"email": "harry@lob.com",
"phone": "5555555555",
"object": "address",
"company": "LOB",
"metadata": {},
"address_zip": "94107-1741",
"description": "Harry - Office",
"address_city": "SAN FRANCISCO",
"date_created": "2019-08-12T00:16:00.361Z",
"address_line1": "210 KING ST STE 6100",
"address_line2": null,
"address_state": "CA",
"date_modified": "2019-08-12T00:16:00.361Z",
"address_country": "UNITED STATES",
"recipient_moved": false
},
"required": [
"id",
"address_line1",
"address_city",
"address_state",
"address_zip"
],
"properties": {
"id": {
"$ref": "#/components/schemas/adr_id"
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Either `name` or `company` is required, you may also add both. Must be no longer than 40 characters. If both `name` and `company` are provided, they will be printed on two separate lines above the rest of the address.\n"
},
"email": {
"type": "string",
"nullable": true,
"maxLength": 100,
"description": "Must be no longer than 100 characters."
},
"phone": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Must be no longer than 40 characters."
},
"object": {
"enum": [
"address"
],
"type": "string",
"default": "address",
"description": "Value is resource type."
},
"company": {
"type": "string",
"nullable": true,
"maxLength": 40,
"description": "Either `name` or `company` is required, you may also add both. Must be no longer than 40 characters. If both `name` and `company` are provided, they will be printed on two separate lines above the rest of the address. This field can be used for any secondary recipient information which is not part of the actual mailing address (Company Name, Department, Attention Line, etc).\n"
},
"metadata": {
"$ref": "#/components/schemas/metadata"
},
"address_zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "Must follow the ZIP format of `12345` or ZIP+4 format of `12345-1234`.\n"
},
"description": {
"$ref": "#/components/schemas/resource_description"
},
"address_city": {
"type": "string",
"maxLength": 200
},
"address_line1": {
"type": "string",
"maxLength": 64,
"description": "The primary number, street name, and directional information."
},
"address_line2": {
"type": "string",
"nullable": true,
"maxLength": 64,
"description": "An optional field containing any information which can't fit into line 1."
},
"address_state": {
"type": "string",
"pattern": "^[a-zA-Z]{2}$",
"description": "2 letter state short-name code"
},
"address_country": {
"enum": [
"UNITED STATES"
],
"type": "string",
"maxLength": 13,
"minLength": 13,
"description": "Full name of country"
},
"recipient_moved": {
"type": "boolean",
"nullable": true,
"description": "Only returned for accounts on certain <a href=\"https://dashboard.lob.com/#/settings/editions\" target=\"_blank\">Print & Mail Editions</a>. Value is `true` if the address was altered because the recipient filed for a <a href=\"#tag/National-Change-of-Address\">National Change of Address Linkage (NCOALink)</a>, `false` if the NCOALink check was run but no altered address was found, and `null` if the NCOALink check was not run. The NCOALink check does not happen for non-US addresses, for non-deliverable US addresses, or for addresses created before the NCOALink feature was added to your account.\n"
}
}
}
]
}
addresses
{
"type": "object",
"properties": {
"components": {
"$ref": "#/components/schemas/components"
},
"location_analysis": {
"$ref": "#/components/schemas/location_analysis"
}
}
}
adr_id
{
"type": "string",
"pattern": "^adr_[a-zA-Z0-9]+$",
"description": "Unique identifier prefixed with `adr_`."
}
bank_account
{
"allOf": [
{
"$ref": "#/components/schemas/bank_account_base"
},
{
"$ref": "#/components/schemas/lob_base"
},
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"$ref": "#/components/schemas/bank_id"
},
"object": {
"enum": [
"bank_account"
],
"type": "string",
"default": "bank_account",
"description": "Value is resource type."
},
"verified": {
"type": "boolean",
"default": false,
"description": "A bank account must be verified before a check can be created. More info [here](#operation/bank_account_verify)."
},
"bank_name": {
"type": "string",
"description": "The name of the bank based on the provided routing number, e.g. `JPMORGAN CHASE BANK`."
},
"signature_url": {
"allOf": [
{
"type": "string",
"nullable": true,
"description": "A [signed link](#section/Asset-URLs) to the signature image."
},
{
"$ref": "#/components/schemas/signed_link"
}
]
}
}
}
],
"example": {
"id": "bank_a",
"object": "bank_account",
"metadat": {
"spiffy": "true"
},
"verified": true,
"bank_name": "JPMORGAN CHASE BANK",
"signatory": "Jane Doe",
"description": "Test Bank Account",
"account_type": "individual",
"date_created": "2019-08-08T19:34:47.571Z",
"date_modified": "2019-08-08T19:34:47.571Z",
"signature_url": "https://lob-assets.com/bank-accounts/asd_asdfghjkqwertyui.pdf?expires=1234567890&signature=aksdf",
"account_number": "123456789",
"routing_number": "322271627"
}
}
bank_account_base
{
"type": "object",
"required": [
"routing_number",
"account_number",
"account_type",
"signatory"
],
"properties": {
"city": {
"type": "string",
"description": "The city associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the city associated with your home bank institution."
},
"state": {
"type": "string",
"description": "The state associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the state associated with your home bank institution."
},
"zipcode": {
"type": "string",
"description": "The zipcode associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the zipcode associated with your home bank institution."
},
"metadata": {
"$ref": "#/components/schemas/metadata"
},
"signatory": {
"type": "string",
"maxLength": 30,
"description": "The signatory associated with your account. This name will be printed on checks created with this bank account. If you prefer to use a custom signature image on your checks instead, please create your bank account from the <a href=\"https://dashboard.lob.com/#/login\" target=\"_blank\">Dashboard</a>."
},
"description": {
"$ref": "#/components/schemas/resource_description"
},
"account_type": {
"enum": [
"company",
"individual"
],
"type": "string",
"description": "The type of entity that holds the account."
},
"account_number": {
"type": "string",
"maxLength": 17
},
"check_template": {
"enum": [
"common",
"jpm"
],
"type": "string",
"description": "The check template used for printing. The defualt value is `common`. If you bank with JP Morgan Chase and wish to use Positive Pay use the `jpm` template. `jpm` requires additional information to be provided."
},
"routing_number": {
"type": "string",
"maxLength": 9,
"minLength": 9,
"description": "Must be a <a href=\"https://www.frbservices.org/index.html\" target=\"_blank\">valid US routing number</a>."
},
"fractional_routing_number": {
"type": "string",
"description": "The fractional routing number for your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the fractional routing number associated with your home bank institution."
}
}
}
bank_account_types
{
"enum": [
"bank_account.created",
"bank_account.deleted",
"bank_account.verified"
],
"type": "string",
"description": "Unique identifier referring to status of bank account"
}
bank_account_verify
{
"type": "object",
"required": [
"amounts"
],
"properties": {
"amounts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/cents"
},
"maxItems": 2,
"minItems": 2,
"description": "In live mode, an array containing the two micro deposits (in cents) placed in the bank account. In test mode, no micro deposits will be placed, so any two integers between `1` and `100` will work."
}
}
}
bank_deletion
{
"properties": {
"id": {
"$ref": "#/components/schemas/bank_id"
},
"deleted": {
"$ref": "#/components/schemas/deleted"
}
},
"description": "Lob uses RESTful HTTP response codes to indicate success or failure of an API request. In general, 2xx indicates success, 4xx indicate an input error, and 5xx indicates an error on Lob's end."
}
bank_id
{
"allOf": [
{
"$ref": "#/components/schemas/bank_id_no_description"
},
{
"type": "string",
"description": "Unique identifier prefixed with `bank_`."
}
]
}
bank_id_no_description
{
"type": "string",
"pattern": "^bank_[a-zA-Z0-9]+$"
}
bg_description
{
"type": "string",
"maxLength": 255,
"description": "Description of the billing group."
}
bg_id
{
"type": "string",
"pattern": "^bg_[a-zA-Z0-9]+$",
"description": "Unique identifier prefixed with `bg_`."
}
billing_group
{
"allOf": [
{
"$ref": "#/components/schemas/billing_group_base"
},
{
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/bg_id"
},
"object": {
"enum": [
"billing_group"
],
"type": "string",
"default": "billing_group",
"description": "Value is resource type."
},
"date_created": {
"$ref": "#/components/schemas/date_created"
},
"date_modified": {
"$ref": "#/components/schemas/date_modified"
}
}
}
]
}
billing_group_base
{
"type": "object",
"properties": {
"name": {
"$ref": "#/components/schemas/name"
},
"description": {
"$ref": "#/components/schemas/bg_description"
}
}
}
billing_group_editable
{
"allOf": [
{
"$ref": "#/components/schemas/billing_group_base"
},
{
"required": [
"name"
]
}
]
}
billing_group_id
{
"type": "string",
"description": "An optional string with the billing group ID to tag your usage with. Is used for billing purposes. Requires special activation to use. See <a href=\"#tag/Billing-Groups\">Billing Group API</a> for more information."
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.19.28 | 94 | 303 | 2026-05-11 | current |
| 1.19.28 | 94 | 303 | 2026-04-20 | |
| 1.19.28 | 94 | 303 | 2026-04-16 |