FrontSail Render Pdf API
The Render Pdf API from FrontSail — 1 operation(s) for render pdf.
The Render Pdf API from FrontSail — 1 operation(s) for render pdf.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/frontsail-app:frontsail-app-render-pdf-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Aspicio DXF and PDF Render Pdf API
version: 1.0.0
description: Inspect and render drawings — DXF/CAD and the vector content of PDF. A `describe` returns structured JSON facts (the format read, layers with the colors actually drawn, units, bounds, entity counts, text content); a `render` returns the drawing as a PNG or SVG image. `/describe` and `/render` read DXF only, `/describe-pdf` and `/render-pdf` read PDF only, and `/describe-doc` and `/render-doc` accept either and detect the format from the bytes; a typed endpoint handed the wrong format answers 422 naming the one that would have worked. A PDF render shows vector line work and text, not a page facsimile. Input is a fetched `src` URL or the file POSTed as the request body. Drawing endpoints are rate-limited per client IP.
license:
name: MIT
url: https://github.com/frontsail-ai/aspicio/blob/master/LICENSE
servers:
- url: https://aspicio-api.frontsail.app
security: []
tags:
- name: Render Pdf
paths:
/render-pdf:
get:
operationId: renderPdf
summary: Render a PDF drawing to an image
description: Returns the whole drawing as a PNG (default) or SVG. Use for visual questions — what the drawing looks like. For measurements and structure, prefer /describe (never measure pixels).
parameters:
- name: src
in: query
required: true
description: Publicly reachable http(s) URL of a .pdf file. Alternatively, POST the PDF file itself as the request body and omit this parameter.
schema:
type: string
format: uri
- $ref: '#/components/parameters/space'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/width'
- $ref: '#/components/parameters/bg'
responses:
'200':
description: The rendered image
content:
image/png:
schema:
type: string
format: binary
image/svg+xml:
schema:
type: string
'400':
description: Bad input (src, space, format, or bg invalid)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: PDF exceeds the 8 MB limit
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: The file could not be parsed as PDF
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (per client IP)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Fetching the src URL failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Render Pdf
post:
operationId: renderPdfUpload
summary: Render an uploaded PDF drawing to an image
description: Same as GET /render, but the PDF file is the request body.
parameters:
- $ref: '#/components/parameters/space'
- $ref: '#/components/parameters/format'
- $ref: '#/components/parameters/width'
- $ref: '#/components/parameters/bg'
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: The rendered image
content:
image/png:
schema:
type: string
format: binary
image/svg+xml:
schema:
type: string
'400':
description: Bad input (space, format or bg invalid, empty body)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: PDF exceeds the 8 MB limit
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: The file could not be parsed as PDF
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limit exceeded (per client IP)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Render Pdf
components:
parameters:
bg:
name: bg
in: query
description: 'Background: a hex color like "#16181d" (URL-encode the #), or "none" for transparent. Default dark slate.'
schema:
type: string
pattern: ^(#[0-9a-fA-F]{3,8}|none)$
default: '#16181d'
space:
name: space
in: query
description: 'Which space to work on: "Model" (a PDF''s page 1, a DXF''s model space) or a page/layout name as listed in a describe reply''s "spaces". Describe omits it for the whole drawing; render defaults to the first space. A name the drawing does not have is a 400.'
schema:
type: string
width:
name: width
in: query
description: PNG width in pixels (default 1200)
schema:
type: integer
minimum: 1
maximum: 4000
default: 1200
format:
name: format
in: query
description: Image format (default png)
schema:
type: string
enum:
- png
- svg
default: png
schemas:
Error:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable failure reason