Api2pdf

Learn how to use Api2pdf with Composio

Overview

SLUG: API2PDF

Description

Api2Pdf is a REST API that enables developers to generate PDFs from HTML, URLs, and various document formats using engines like wkhtmltopdf, Headless Chrome, and LibreOffice.

Authentication Details

generic_api_key
stringRequired

Connecting to Api2pdf

Create an auth config

Use the dashboard to create an auth config for the Api2pdf toolkit. This allows you to connect multiple Api2pdf accounts to Composio for agents to use.

1

Select App

Navigate to the Api2pdf toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2from composio.types import auth_scheme
3
4# Replace these with your actual values
5api2pdf_auth_config_id = "ac_YOUR_API2PDF_CONFIG_ID" # Auth config ID created above
6user_id = "0000-0000-0000" # UUID from database/app
7
8composio = Composio()
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 # Replace this with a method to retrieve an API key from the user.
12 # Or supply your own.
13 user_api_key = input("[!] Enter API key")
14
15 connection_request = composio.connected_accounts.initiate(
16 user_id=user_id,
17 auth_config_id=auth_config_id,
18 config={"auth_scheme": "API_KEY", "val": user_api_key}
19 )
20
21 # API Key authentication is immediate - no redirect needed
22 print(f"Successfully connected Api2pdf for user {user_id}")
23 print(f"Connection status: {connection_request.status}")
24
25 return connection_request.id
26
27
28connection_id = authenticate_toolkit(user_id, api2pdf_auth_config_id)
29
30# You can verify the connection using:
31connected_account = composio.connected_accounts.get(connection_id)
32print(f"Connected account: {connected_account}")

Tools

Executing tools

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["API2PDF"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Delete PDF

Description

Tool to delete a previously generated pdf. use when you need to immediately remove a pdf by its response id.

Action Parameters

response_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Extract PDF Pages

Description

Tool to extract specific pages from a pdf document. use when you need only certain pages from a larger pdf file.

Action Parameters

end
integer
extraHTTPHeaders
object
fileName
string
inline
booleanDefaults to True
start
integer
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: LibreOffice PDF to HTML

Description

Tool to convert a pdf document to html using libreoffice. use when you need html output of a pdf file (experimental; images may be excluded).

Action Parameters

fileName
string
inline
boolean
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: LibreOffice Thumbnail

Description

Tool to generate a thumbnail image of a document using libreoffice. use when you need a quick visual preview of a pdf or office file's first page.

Action Parameters

url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Merge PDFs

Description

Tool to merge multiple pdf documents into a single pdf. use when you need to concatenate several pdfs on the server-side.

Action Parameters

extraHTTPHeaders
object
fileName
string
inline
booleanDefaults to True
storage
object
urls
arrayRequired
useCustomStorage
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Optimize PDF

Description

Tool to optimize a pdf document to reduce file size while maintaining quality. use when you need to minimize storage or bandwidth for an existing pdf.

Action Parameters

extraHTTPHeaders
object
fileName
string
inline
booleanDefaults to True
storage
object
url
stringRequired
useCustomStorage
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Reorder PDF Pages

Description

Tool to reorder pages of a pdf document. use when you need to rearrange pages into a new order by specifying page indices.

Action Parameters

extraHTTPHeaders
object
fileName
string
inline
booleanDefaults to True
pages
arrayRequired
storage
object
url
stringRequired
useCustomStorage
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Generate Barcode or QR Code

Description

Tool to generate barcodes or qr codes using zebra crossing (zxing). use when you need a barcode or qr code image from text values.

Action Parameters

format
stringRequired
height
integer
showlabel
boolean
value
stringRequired
width
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired