Lob

Print and mail APIs for direct mail

lob.com/docs ↗
Version
1.19.28
OpenAPI
3.0.3
Endpoints
94
Schemas
303
85
Quality
Updated
3 days ago
Documents documents mail printing
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.lob.com/v1

Endpoints

Clear filters

Buckslips 1 endpoints

PATCH /buckslips/{buckslip_id}

Update the details of an existing buckslip. You need only supply the unique identifier that was returned upon buckslip creation.

operationId: buckslip_update

Parameters

Name In Required Type Description
buckslip_id path required

id of the buckslip

Request Body

required
application/json
schema buckslip_updatable
Property Type Required
description string optional
auto_reorder boolean optional
reorder_quantity number optional
multipart/form-data
schema buckslip_updatable
Property Type Required
description string optional
auto_reorder boolean optional
reorder_quantity number optional
application/x-www-form-urlencoded
schema buckslip_updatable
Property Type Required
description string optional
auto_reorder boolean optional
reorder_quantity number optional

Responses

default

Error

200

Returns a buckslip object

PATCH /buckslips/{buckslip_id}

Campaigns 1 endpoints

PATCH /campaigns/{cmp_id}

Update the details of an existing campaign. You need only supply the unique identifier that was returned upon campaign creation.

operationId: campaign_update

Parameters

Name In Required Type Description
cmp_id path required

id of the campaign

Request Body

required
application/json
schema campaign_updatable
Property Type Required
name string optional
is_draft boolean optional
metadata object optional
use_type string optional
send_date string optional
description string optional
schedule_type string optional
auto_cancel_if_ncoa boolean optional
target_delivery_date string optional
cancel_window_campaign_minutes integer optional
multipart/form-data
schema campaign_updatable
Property Type Required
name string optional
is_draft boolean optional
metadata object optional
use_type string optional
send_date string optional
description string optional
schedule_type string optional
auto_cancel_if_ncoa boolean optional
target_delivery_date string optional
cancel_window_campaign_minutes integer optional
application/x-www-form-urlencoded
schema campaign_updatable
Property Type Required
name string optional
is_draft boolean optional
metadata object optional
use_type string optional
send_date string optional
description string optional
schedule_type string optional
auto_cancel_if_ncoa boolean optional
target_delivery_date string optional
cancel_window_campaign_minutes integer optional

Responses

default

Error

200

Returns a campaign object

PATCH /campaigns/{cmp_id}

Creatives 1 endpoints

PATCH /creatives/{crv_id}

Update the details of an existing creative. You need only supply the unique identifier that was returned upon creative creation.

operationId: creative_update

Parameters

Name In Required Type Description
crv_id path required

id of the creative

Request Body

required
application/json
schema creative_base
Property Type Required
from object optional
metadata object optional
description string optional
multipart/form-data
schema creative_base
Property Type Required
from object optional
metadata object optional
description string optional
application/x-www-form-urlencoded
schema creative_base
Property Type Required
from object optional
metadata object optional
description string optional

Responses

default

Error

200

Returns a creative object

PATCH /creatives/{crv_id}

Urlshortener 1 endpoints

PATCH /links/{link_id}

Update any of the properties of a shortened link.

operationId: link_update

Parameters

Name In Required Type Description
link_id path required string

Unique identifier for a link.

Request Body

required
application/json
schema 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
schema 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
schema link_single
Property Type Required
slug string optional
domain string optional
metadata_tag object optional
redirect_link string required
billing_group_id string optional

Responses

default

Error

200

Returns the updated link.

PATCH /links/{link_id}

Uploads 1 endpoints

PATCH /uploads/{upl_id}

Update the details of an existing upload. You need only supply the unique identifier that was returned upon upload creation.

operationId: upload_update

Parameters

Name In Required Type Description
upl_id path required

id of the upload

Request Body

required
application/json
schema upload_updatable
Property Type Required
metadata object optional
columns array required
originalFilename string optional
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

Responses

200

Returns an upload object

404

Not Found Error

422

Validation Error

PATCH /uploads/{upl_id}

Schemas

object AddressesListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/address"
          },
          "description": "list of addresses"
        }
      }
    }
  ]
}
object BankAccountsGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/bank_account"
          },
          "description": "list of bank_accounts"
        }
      }
    }
  ]
}
object BillingGroupsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/billing_group"
          },
          "description": "list of billing_groups"
        }
      }
    }
  ]
}
object BuckslipOrdersGetByBuckslipIdResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/buckslip_order"
          },
          "description": "List of buckslip orders"
        }
      }
    }
  ]
}
object BuckslipsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/buckslip"
          },
          "description": "list of buckslips"
        }
      }
    }
  ]
}
object 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."
}
object CampaignsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/campaign"
          },
          "description": "list of campaigns"
        }
      }
    }
  ]
}
object CardOrdersGetResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/card_order"
          },
          "description": "List of card orders"
        }
      }
    }
  ]
}
object CardsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/card"
          },
          "description": "list of cards"
        }
      }
    }
  ]
}
object ChecksListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/check"
          },
          "description": "list of checks"
        }
      }
    }
  ]
}
object 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"
    }
  }
}
object LettersListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/letter"
          },
          "description": "list of letters"
        }
      }
    }
  ]
}
object PostcardsListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/postcard"
          },
          "description": "list of postcards"
        }
      }
    }
  ]
}
object 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."
        }
      }
    }
  ]
}
object 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."
    }
  }
}
object 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"
    }
  }
}
object SelfMailersGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/self_mailer"
          },
          "description": "list of self_mailers"
        }
      }
    }
  ]
}
object TemplateVersionsGetListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/template_version"
          },
          "description": "list of template versions"
        }
      }
    }
  ]
}
object TemplatesListResponse
{
  "allOf": [
    {
      "$ref": "#/components/schemas/list"
    },
    {
      "type": "object",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/template"
          },
          "description": "list of templates"
        }
      }
    }
  ]
}
object 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"
    }
  }
}
object UploadFileRequest
{
  "type": "object",
  "properties": {
    "file": {
      "type": "string",
      "format": "binary"
    }
  }
}
object UploadsCreateExportFileRequest
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "all",
        "failures",
        "successes"
      ],
      "type": "string"
    }
  }
}
object 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"
    }
  }
}
array UploadsListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/upload"
  }
}
object address
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/address_us"
    },
    {
      "$ref": "#/components/schemas/address_intl"
    }
  ]
}
object 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."
}
object address_editable
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/address_editable_us"
    },
    {
      "$ref": "#/components/schemas/address_editable_intl"
    }
  ]
}
object 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"
        }
      }
    }
  ]
}
object 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"
        }
      }
    }
  ]
}
object 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
    }
  }
}
object 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"
    }
  }
}
object 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"
        }
      }
    }
  ]
}
string 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"
}
string address_types
{
  "enum": [
    "address.created",
    "address.deleted"
  ],
  "type": "string",
  "description": "Unique identifier referring to status of address"
}
object 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 &amp; 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"
        }
      }
    }
  ]
}
object addresses
{
  "type": "object",
  "properties": {
    "components": {
      "$ref": "#/components/schemas/components"
    },
    "location_analysis": {
      "$ref": "#/components/schemas/location_analysis"
    }
  }
}
string adr_id
{
  "type": "string",
  "pattern": "^adr_[a-zA-Z0-9]+$",
  "description": "Unique identifier prefixed with `adr_`."
}
object 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"
  }
}
object 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."
    }
  }
}
string bank_account_types
{
  "enum": [
    "bank_account.created",
    "bank_account.deleted",
    "bank_account.verified"
  ],
  "type": "string",
  "description": "Unique identifier referring to status of bank account"
}
object 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."
    }
  }
}
object 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."
}
object bank_id
{
  "allOf": [
    {
      "$ref": "#/components/schemas/bank_id_no_description"
    },
    {
      "type": "string",
      "description": "Unique identifier prefixed with `bank_`."
    }
  ]
}
string bank_id_no_description
{
  "type": "string",
  "pattern": "^bank_[a-zA-Z0-9]+$"
}
string bg_description
{
  "type": "string",
  "maxLength": 255,
  "description": "Description of the billing group."
}
string bg_id
{
  "type": "string",
  "pattern": "^bg_[a-zA-Z0-9]+$",
  "description": "Unique identifier prefixed with `bg_`."
}
object 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"
        }
      }
    }
  ]
}
object billing_group_base
{
  "type": "object",
  "properties": {
    "name": {
      "$ref": "#/components/schemas/name"
    },
    "description": {
      "$ref": "#/components/schemas/bg_description"
    }
  }
}
object billing_group_editable
{
  "allOf": [
    {
      "$ref": "#/components/schemas/billing_group_base"
    },
    {
      "required": [
        "name"
      ]
    }
  ]
}
string 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."
}

Versions

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