canonical: https://jentic.com/apis/galleyrender.com/galleyrender

# Galley Render API

The Galley Render API turns a template and a JSON payload into a PDF, PNG, or JPG behind a signed URL. Renders are deterministic and cached on a SHA-256 key over the template version checksum, the output format, and the canonical JSON, so an identical repeat request returns the stored object and is not billed. Small jobs finish inside the request and return a URL, while large, batch, async, or webhook jobs run in the background. Templates are versioned and immutable, payloads can be validated against a template schema before rendering, and existing PDFs can be imported and turned into reusable templates.

## For AI agents

Render a template plus a JSON payload into a PDF, PNG, or JPG behind a signed URL, singly or in batches of up to 50. Templates are versioned and validatable, and operations use a bearer API key.

## Scope

Does not handle long-term file hosting, e-signature, or document storage beyond cached renders. Use for rendering templates into PDF, PNG, and JPG files only.

## Capabilities

- Render a template and JSON payload into a PDF, PNG, or JPG behind a signed URL
- Render up to 50 documents in one batch request
- Create templates and publish immutable, versioned revisions
- Validate a JSON payload against a template's schema before rendering
- Import an existing PDF and turn it into a reusable template
- Read usage, cost, and limits for the current billing period
- Mint and revoke API keys and set a monthly spend cap for the account

## Use cases

### AI Agent Document Rendering via Jentic

An AI agent reaches Galley Render through Jentic to produce a finished document without wiring the bearer key itself. It searches by intent, receives the matching operation and its input schema, and executes the render with the key injected at run time. Because renders are deterministic and cached, an agent that repeats the same request gets the stored file back at no extra charge.

Example prompt: Search Jentic for 'render a PDF from a template and JSON', load the POST `/v1/render` schema, and execute it with the key injected at run time

### Templated Document Generation

An application turns structured data into a branded PDF such as an invoice, receipt, or certificate. Galley Render validates the JSON payload against the template's schema and then renders the document behind a signed URL. Because templates are immutable and versioned, a document rendered against version 3 stays reproducible even after a later version ships.

Example prompt: Call POST `/v1/templates/{ref}/validate` to check the payload, then POST `/v1/render` to produce the PDF behind a signed URL

### Batch Rendering

A job produces many documents at once, such as a run of certificates or statements. Galley Render takes up to 50 items in a single batch request and renders each behind its own signed URL. The agent can then fetch a fresh signed URL for any output by its id when it is ready to deliver the file.

Example prompt: Call POST `/v1/render/batch` with up to 50 items, then GET `/v1/renders/{id}` to fetch a fresh signed URL for each output

### PDF to Template Import

A team turns an existing PDF into a reusable, data-driven template. Galley Render starts an import from the uploaded document, asks clarifying questions about the variable fields, and saves the result as a template once the answers are in. From then on the team renders new documents from structured JSON instead of editing the original file.

Example prompt: Call POST `/v1/imports` to start an import from a PDF, POST `/v1/imports/{id}/answers` to answer its questions, then POST `/v1/imports/{id}/save` to save it as a template

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/render` | Render a document from a template and JSON |
| POST | `/v1/render/batch` | Render up to 50 documents |
| GET | `/v1/renders/{id}` | Get a render and a fresh signed URL |
| GET | `/v1/templates` | List templates on the account |
| POST | `/v1/templates` | Create a template at version 1 |
| POST | `/v1/templates/{ref}/validate` | Dry-run a payload against a template schema |
| POST | `/v1/imports` | Start turning an existing document into a template |
| GET | `/v1/usage` | Usage, cost, and limits for the current period |

## Key resources

- **Render** — Render single and batch documents and fetch signed URLs via `/v1/render`, `/v1/render/batch`, and `/v1/renders`
- **Templates** — Create, version, and validate templates via `/v1/templates` and its sub-resources
- **Imports** — Turn existing PDFs into templates via `/v1/imports` and its sub-resources
- **Account** — Read usage and manage keys, spend cap, and billing via `/v1/usage`, `/v1/account`, and `/v1/billing`

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 79 / 100
  - Developer Experience & Jentic Compatibility: 66 / 100
  - AI-Readiness & Agent Experience: 50 / 100
  - Agent Usability: 94 / 100
  - Security: 55 / 100
  - AI Discoverability: 74 / 100
- **View full report:** https://jentic.com/apis/galleyrender.com/galleyrender/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Galley Render by hand means sending the bearer key, deciding between synchronous and async or webhook jobs by payload size, and verifying the webhook signing secret yourself. Through Jentic you install once, import Galley Render from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** A rule can confine your agent to the render operations and template reads it needs and keep it away from account operations, so it cannot mint or revoke keys, rotate the webhook secret, or set the spend cap. You choose which operations it may call, so destructive ones such as deleting a template are not included unless you add them.
- **Credential handling:** Your Galley Render key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'render a PDF from a template' or 'validate a payload against a template', and Jentic returns the matching Galley Render operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CraftMyPDF** — Generate PDFs from a drag-and-drop template and JSON data
- **PDFMonkey** — Template-based PDF generation driven by dynamic data
- **Bannerbear** — Auto-generate social images and videos from templates

## FAQ

### What authentication does the Galley Render API use?

The Galley Render API authenticates with an API key (a glr_sk_ string) sent as a Bearer token in the Authorization header, or in the X-API-Key header, per its OpenAPI spec. Most operations require the key, while a few public endpoints, such as the starter library and the health check, are open and need no credential. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at execution time, so it never reaches the agent.

### What are the rate limits for the Galley Render API?

The OpenAPI spec does not specify request rate limits. The usage endpoint reports usage, cost, and limits for the current period, and an account spend cap bounds monthly spend, while identical repeat renders return the cached object and are not billed. See https://galleyrender.com/support for current limits.

### Can I render a PDF with the Galley Render API?

Yes. POST `/v1/render` turns a template and a JSON payload into a PDF, PNG, or JPG behind a signed URL, and POST `/v1/render/batch` renders up to 50 documents at once. You can validate the payload against the template schema first with POST `/v1/templates/{ref}/validate.`

### Is there a Galley Render MCP server?

You don't need an MCP server to give your agent Galley Render. Jentic connects it directly from the API Directory: import it and your agent calls the render, template, and import operations on demand, discovering each operation's schema when it needs it rather than loading a separate server's tool definitions into context.

### How do I render a document with the Galley Render API through Jentic?

Search Jentic for 'render a PDF from a template and JSON', and it returns the Galley Render operation with its input schema. Load it and execute POST `/v1/render` with the key injected at run time. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Galley Render API?

Yes. Write a rule that allows only the render operations and template reads a task needs, so the agent can produce documents but cannot mint or revoke keys, rotate the webhook secret, set the spend cap, or delete a template. Because every call runs through your own instance, each one is logged for you to review.
