API's

File Conversion API

One API to handle them all. More than 200 formats supported.

Security

Converterer has been trusted by our users and customers since its founding in 2024.

Custom Workflows

Our API uses the concept of jobs and allows to do multiple operations with one single API call.

Advanced Options

Most conversion types can be adjusted to your needs such as setting the quality and many other options.

Developer Friendly

Our extensive API Documentation helps to get you started quickly.

curl -u $PAPERPLANE_API_KEY: https://api.paperplane.app/jobs \
  -d url="https://en.wikipedia.org/wiki/Airplane" \
  -d margin_top=0.5cm \
  -d margin_bottom=0.5cm \
  -d page_size=A4

Copy
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.paperplane.app/jobs',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => array(
    'url' => 'https://en.wikipedia.org/wiki/Airplane',
    'page_size' => 'A4'
  ),
  CURLOPT_USERNAME => getenv('PAPERPLANE_API_KEY')
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;

?>
Copy
# gem install http

require "http"

response = HTTP.basic_auth(user: ENV.fetch("PAPERPLANE_API_KEY"), pass: "").post(
  "https://api.paperplane.app/jobs",
  json: { url: "https://en.wikipedia.org/wiki/Airplane", page_size: "A4" }
)

puts response.body
Copy
# pip install requests

import os
import requests

response = requests.post(
    'https://api.paperplane.app/jobs',
    auth=(os.getenv('PAPERPLANE_API_KEY'), ''),
    data={'url': 'https://en.wikipedia.org/wiki/Airplane', 'page_size': 'A4'}
)

print(response.json())
Copy
// npm install node-fetch

const fetch = require("node-fetch");

const url = "https://api.paperplane.app/jobs";

async function createPdf() {
  const auth = new Buffer(process.env.PAPERPLANE_API_KEY + ":").toString(
    "base64"
  );
  const response = await fetch(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Basic ${auth}`
    },
    body: JSON.stringify({
      url: "https://en.wikipedia.org/wiki/Airplane",
      page_size: "A4"
    })
  });
  const json = await response.json();
  console.log(json);
};

createPdf();
Copy
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
	"net/url"
	"os"
	"strings"
)

func main() {
	apiKey := os.Getenv("PAPERPLANE_API_KEY")
	endpoint := "https://api.paperplane.app/jobs"
	formData := url.Values{
		"url":       {"https://en.wikipedia.org/wiki/Airplane"},
		"page_size": {"A4"},
	}.Encode()

	// Construct the request
	req, err := http.NewRequest("POST", endpoint, strings.NewReader(formData))
	if err != nil {
		log.Fatal(err)
	}
	req.SetBasicAuth(apiKey, "")
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")

	// Send the request
	client := http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("response status:", resp.Status)
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return
	}
	fmt.Println(string(body))
}
Copy
// npm install node-fetch

const fetch = require("node-fetch");

const url = "https://api.paperplane.app/jobs";

async function createPdf() {
  const auth = new Buffer(process.env.PAPERPLANE_API_KEY + ":").toString(
    "base64"
  );
  const response = await fetch(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Basic ${auth}`
    },
    body: JSON.stringify({
      url: "https://en.wikipedia.org/wiki/Airplane",
      page_size: "A4"
    })
  });
  const json = await response.json();
  console.log(json);
};

createPdf();
Copy

Want to get started?

No-code Solutions

Not a Developer? No Worries

Converterer plays well with others, offering seamless 3rd party integration.