Introduction

Welcome to the Lawlift API! You can use our API to access Lawlift API endpoints to export data from your system into Lawlift.

Authentication

To authorize get the API auth key from the Lawlift app.

Make sure to replace API_KEY with your API key.

Lawlift uses API keys to allow access to the API.

Lawlift expects the API key to be included in all API requests to the server in the request header in the following form:

Authorization: Basic API_KEY

The API Auth key can be retrieved from the Lawlift app. Open a Template in editing mode, choose Options and enable the 'API Mapping'. The API key will be displayed unencrypted below.

NOTE: The API auth key will be in the form: <ApiClientId>@<ApiSecretKey>

Documents

Generate a document in the Lawlift app with imported data

curl -H "Authorization: Basic <ApiKey>" \
 -H "Content-Type: application/json" \
 -X POST --data '{"templateId":"<templateId>","data":{"question1yes":true, "client": "Max"}}' \
 https://app.lawlift.de/api/v1/documents/generate
// NodeJS (server side)
var request = require('request');

var headers = {
    'Authorization': 'Basic <ApiKey>',
    'Content-Type': 'application/json'
};

var dataString = '{"templateId":"<templateId>","data":{"question1yes":true, "client": "Max"}}';

var options = {
    url: 'https://app.lawlift.de/api/v1/documents/generate',
    method: 'POST',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
import requests

headers = {
    'Authorization': 'Basic <ApiKey>',
    'Content-Type': 'application/json',
}

data = '{"templateId":"<templateId>","data":{"question1yes":true, "client": "Max"}}'

response = requests.post('https://app.lawlift.de/api/v1/documents/generate', headers=headers, data=data)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'Authorization' => 'Basic <ApiKey>',
    'Content-Type' => 'application/json'
);
$data = '{"templateId":<templateId>,"data":{"question1yes":true}}';
$response = Requests::post('https://app.lawlift.de/api/v1/documents/generate', $headers, $data);

This endpoint generates a new document with the provided data pre-filled and returns a url to the new document in Lawlift app.

Prerequisites

To populate imported data into an newly created document based on an existing templates a manual mapping of fields has to be provided for the template.

Enable the API Mapping in Lawlift and provide mapping fields for all the answers of a template.

Login to Lawlift
Go to 'Templates'
'Edit' the template you want to map
Open 'Options'
At the bottom enable 'Api Mapping' and copy the API auth key.

The mapping connects fields from the source system 1 to 1 with an answer of a document.

The import data payload should look like this:

{
  "answer1-yes": true,
  "answer1-no": false, //Can be omitted if it is `false`  
  "answer2": "First Name",
  "answer3": "Last Name",
  "serialAnswer1_Name": ["Client 1", "Client 2", "Client 3"],
  "serialAnswer1_Address": ["Adresse 1", "Adresse 2","Adresse 3"]
}

HTTP Request

POST https://app.lawlift.de/api/v1/documents/generate

Query Parameters

ParameterTypeDescription
templateIdStringThe Lawlift Id of the template from which a document should be generated.
dataJSONThe data object with the mapped fields, can be serialized JSON or encrypted with tweet-nacl (Base64).
authorEmail (optional)StringEmail of the author of the document.
clientName (optional)StringThe name of the client.
caseName (optional)StringThe name of the case.
nonce (optional)StringOnly required if data payload is encrypted.

Templates

Get all available templates

curl "https://app.lawlift.de/api/v1/templates"
  -H "Authorization: Basic <api_key>"

The above command returns JSON structured like this:

[
  {
    "id": 1,
    "name": "Template name"
  },
  {
    "id": 2,
    "name": "Another template name"
  }
]

This endpoint retrieves all templates.

HTTP Request

GET https://app.lawlift.de/api/v1/templates

Query Parameters

none

Errors

The Lawlift API uses the following error codes:

Error CodeMeaning
400Bad Request -- Your request is invalid.
401Unauthorized -- Your API key is wrong.
403Forbidden -- The resource requested is hidden for administrators only.
404Not Found -- The specified resource could not be found.
405Method Not Allowed -- You tried to access a resource with an invalid method.
406Not Acceptable -- You requested a format that isn't json.
410Gone -- The resource requested has been removed from our servers.
429Too Many Requests -- You're requesting too many resources! Slow down!
500Internal Server Error -- We had a problem with our server. Try again later.
503Service Unavailable -- We're temporarily offline for maintenance. Please try again later.