Find an API

Search public APIs with auth details & Postman guides

← All APIs

PDF Blocks API

pdfblocks · Company

Company No Auth Free & Open text

PDF Blocks is a secure, reliable, and fast API to work with PDF documents. Actions include: Merge PDF documents, add or remove passwords, add watermarks, remove, extract, reverse, and rotate pages, and more.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

POST Add a password to a PDF

Protect a PDF document with a password. Encrypt the PDF document to prevent unauthorized access.

https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password

Hover any highlighted part to learn what it does

curl -X POST "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password"
import requests
response = requests.post(
    "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password';

const response = await fetch(url, {
  method: 'POST',
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password"
	req, _ := http.NewRequest("POST", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_password";
$opts = ["http" => [
    "method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST Add restrictions to a PDF

Add restrictions to prevent copying, printing, and modifying a PDF document.

https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions

Hover any highlighted part to learn what it does

curl -X POST "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions"
import requests
response = requests.post(
    "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions';

const response = await fetch(url, {
  method: 'POST',
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions"
	req, _ := http.NewRequest("POST", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/add_restrictions";
$opts = ["http" => [
    "method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST Extract pages from a PDF

Extract one or more pages from a PDF document.

https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages

Hover any highlighted part to learn what it does

curl -X POST "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages"
import requests
response = requests.post(
    "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages';

const response = await fetch(url, {
  method: 'POST',
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages"
	req, _ := http.NewRequest("POST", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/pdfblocks.com/1.5.0/v1/extract_pages";
$opts = ["http" => [
    "method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with PDF Blocks API?

PDF Blocks API is a Company API. Developers commonly use company APIs for:

  • enriching CRM records with company firmographics
  • building lead-generation and prospecting tools
  • verifying business identity and registration details
  • monitoring competitors and market intelligence
  • powering B2B data enrichment pipelines

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. PDF Blocks API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗