Welcome to intelligent mail.

Lob's Print & Mail APIs deliver robust automation and scale for anything with a stamp.

We gave mail an upgrade.

Now you can program and control physical mail just like e-mail, from automatic triggers to lightning-fast delivery and everything in between. The result? A more timely, relevant, and personal customer experience that's fully automated and trackable. If it's mail, Lob does it better.

Automatic
triggers.

Achieve scale for complex, labor-intensive, expensive processes that no one likes doing. Just set it and forget it.

Print Delivery
Network.

Lob automatically routes print requests through our vast network of vetted printers, so mail gets to its destination faster than ever.

Dynamic control,
for every detail.

Forget rigid templates—our personalization makes your data truly variable, so you can iterate quickly, easily make changes, and do multivariate testing.

Powerful dashboard
and analytics.

Aggregate and piece-by-piece delivery tracking, complete mail history, and comprehensive logging—it's all right there.


Send the following through Lob:

Automate intelligent letters in your customer communications strategy.

From personalized welcome letters to performant collections and claims notices, use Lob's Letters API to trigger production and delivery of letters to your customers.

Recurring, Event-Driven Letters

With the Lob API, you can send customized letters based on specific events you define or actions your customers take. From personalized test results to tailored offer letters, you can generate each document on demand, no batching required.

Secure Documents for Your Customer's Eyes Only

Your letters are sent quickly, securely, and accurately. Lob offers HIPAA compliance from production to delivery, ensuring each document is for the intended recipient's eyes only.

Track Everything Along the Way

Keep an eye on your delivery stats and add any additional campaign tracking you'd like, from promo codes to unique URLs and phone numbers. With Lob, you know when each document is processed, printed, and delivered, at no additional cost.


Easy integration via REST API.

Include your letter HTML along with a shipping address in one simple API call. Integration is dead simple with pre-built libraries and code examples in Node.js, Ruby, Python, PHP, Java, and Elixir.

Read Docs View Libraries
  • curl

  • Node

  • Ruby

  • Python

  • PHP

  • Java

  • Elixir

  • 
    curl https://api.lob.com/v1/letters \
      -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc: \
      -d "description=Demo Letter" \
      -d "to[name]=Harry Zhang" \
      -d "to[address_line1]=123 Test Street" \
      -d "to[address_city]=Mountain View" \
      -d "to[address_state]=CA" \
      -d "to[address_zip]=94041" \
      -d "to[address_country]=US" \
      -d "from=adr_76e48bf412848b2a" \
      --data-urlencode "file=<html style='padding-top: 3in; margin: .5in;'>HTML Letter for {{name}}</html>" \
      -d "merge_variables[name]=Harry" \
      -d "color=true"
    
              
    
    Lob.letters.create({
      description: 'Demo Letter',
      to: {
        name: 'Harry Zhang',
        address_line1: '123 Test Street',
        address_city: 'Mountain View',
        address_state: 'CA',
        address_zip: '94041'
      },
      from: 'adr_76e48bf412848b2a',
      file: '<html style="padding-top: 3in; margin: .5in;">HTML Letter for {{name}}</html>',
      merge_variables: {
        name: 'Harry'
      },
    }, function (err, res) {
      console.log(err, res);
    });
    
              
    
    @Lob.letters.create(
      description: "Demo Letter",
      to: {
        name: "Harry Zhang",
        address_line1: "123 Test Street",
        address_city: "Mountain View",
        address_state: "CA",
        address_zip: 94041
      },
      from: "adr_76e48bf412848b2a",
      file: "<html style='padding-top: 3in; margin: .5in;'>HTML Letter for {{name}}</html>",
      merge_variables: {
        name: "Harry"
      },
      color: true
    )
    
              
    
    Lob.Letter.create(
        description = 'My First Letter',
        to_address = {
            'name': 'Harry Zhang',
            'address_line1': '123 Test Street',
            'address_city': 'Mountain View',
            'address_state': 'CA',
            'address_zip': '94041',
        },
        from_address = 'adr_76e48bf412848b2a',
        file = '<html style="padding-top: 3in; margin: .5in;">HTML Letter for {{name}}</html>',
        merge_variables = {
          'name': 'Harry'
        },
        color = True
    )
    
              
    
    $Lob->letters()->create(array(
      'description' => 'Demo Letter',
      'to' => array(
        'name'          => 'Harry Zhang',
        'address_line1' => '123 Test Street',
        'address_city'  => 'Mountain View',
        'address_state' => 'CA',
        'address_zip'   => '94041',
      ),
      'from' => 'adr_76e48bf412848b2a',
      'file'                  => '<html style="padding-top: 3in; margin: .5in;">HTML Letter for {{name}}</html>',
      'merge_variables[name]' => 'Harry',
      'color'                 => true
    ));
    
              
    
    final Map<String, String> mergeVariables = Maps.newHashMap();
    mergeVariables.put("name", "Harry");
    
    final LetterRequest letterRequest = LetterRequest.builder()
      .description("Demo Letter")
      .to(AddressRequest.builder()
        .name("Harry Zhang")
        .line1("123 Test Street")
        .city("Mountain View")
        .state("CA")
        .zip("94041")
        .country("US")
        .build())
      .from(AddressId.parse("adr_76e48bf412848b2a"))
      .file("<html style='padding-top: 3in; margin: .5in;'>HTML Letter for {{name}}</html>")
      .mergeVariables(mergeVariables)
      .color(true)
      .build();
    
    final LetterResponse letter = client.createLetter(letterRequest).get();
    
              
    
    Lob.Letter.create(%{
      description: "Demo Letter",
      to: %{
        name: "Harry Zhang",
        address_line1: "123 Test Street",
        address_city: "Mountain View",
        address_state: "CA",
        address_zip: 94041
      },
      from: "adr_76e48bf412848b2a",
      file: "<html style='padding-top: 3in; margin: .5in;'>HTML Letter for {{name}}</html>",
      merge_variables: %{
        name: "Harry"
      },
      color: true
    })
    
              

    Smarter mail starts with Lob.

    It's dead-simple to get up and running, and our experts are here to help at every step.

    Try It Now Talk to Sales