Skip to main content

Command Palette

Search for a command to run...

Getting Started with Rynko in 5 Minutes

Sign up, create a template, and generate your first PDF — all in under 5 minutes.

Updated
5 min read
Getting Started with Rynko in 5 Minutes

This guide walks you through generating your first document with Rynko. By the end, you'll have a working PDF generated from a template via our API.

Step 1: Create Your Account (30 seconds)

Head to app.rynko.dev/signup and create a free account. No credit card required.

Every new account comes with 5,000 free document credits as part of our Founder's Preview — more than enough to build and test.

Browse pre-built templates or create your own from scratch.

Step 2: Create a Template (2 minutes)

Once you're in the dashboard, click New Template to open the visual designer.

You have three options:

Option A: Use a Pre-Built Template

Browse the template gallery and pick one that's close to what you need — invoices, reports, certificates, and more. Customize it in the designer.

Option B: Design from Scratch

The drag-and-drop designer supports 28 component types. Drag in text, tables, images, charts, QR codes, and more. Set up variables using {{variableName}} syntax in any text field.

Option C: Let AI Create It (MCP)

If you're using Claude Desktop or Cursor with our MCP server, just describe what you need:

"Create an invoice template with company logo, customer details,
a line items table, and totals with tax calculation"

For this guide, let's create a simple invoice. Add these variables to your template:

VariableTypeDescription
invoiceNumberstringInvoice identifier (e.g., "INV-2026-001")
clientNamestringCustomer name
clientEmailstringCustomer email
lineItemsarrayLine items with description, quantity, price
subtotalnumberSubtotal amount
taxnumberTax amount
totalnumberTotal amount

Click Publish when you're happy with the design.

Tip: Use the Preview button to test your template before publishing. Previews are free and don't consume credits.

The visual template designer with a working invoice template — variables, tables, calculated fields, and live preview.

Step 3: Get Your API Key (30 seconds)

Go to Settings > API Keys and create a new key. Copy it — you'll need it in the next step.

Your API key starts with your team ID and gives programmatic access to your templates and document generation.

Step 4: Generate a Document (2 minutes)

Pick your language:

You can also test document generation without code using the API Playground in your dashboard — paste in variables and generate a document directly from the browser.

Node.js

npm install @rynko/sdk
import { Rynko } from '@rynko/sdk';

const rynko = new Rynko({
  apiKey: process.env.RYNKO_API_KEY!,
});

// Generate a PDF
const job = await rynko.documents.generatePdf({
  templateId: 'invoice', // Your template slug, shortId, or UUID
  variables: {
    invoiceNumber: 'INV-2026-001',
    clientName: 'Acme Technologies Pvt. Ltd.',
    clientEmail: 'accounts@acmetech.com',
    lineItems: [
      { description: 'Technical Consulting', quantity: 2, price: 150.00 },
      { description: 'Software License', quantity: 1, price: 500.00 },
    ],
    subtotal: 800.00,
    tax: 80.00,
    total: 880.00,
  },
});

console.log('Job queued:', job.jobId);

// Wait for completion
const completed = await rynko.documents.waitForCompletion(job.jobId);
console.log('Download URL:', completed.downloadUrl);

Python

pip install rynko
import os
from rynko import Rynko

client = Rynko(api_key=os.environ["RYNKO_API_KEY"])

# Generate a PDF
job = client.documents.generate_pdf(
    template_id="invoice",
    variables={
        "invoiceNumber": "INV-2026-001",
        "clientName": "Acme Technologies Pvt. Ltd.",
        "clientEmail": "accounts@acmetech.com",
        "lineItems": [
            {"description": "Technical Consulting", "quantity": 2, "price": 150.00},
            {"description": "Software License", "quantity": 1, "price": 500.00},
        ],
        "subtotal": 800.00,
        "tax": 80.00,
        "total": 880.00,
    },
)

print(f"Job queued: {job['jobId']}")

# Wait for completion
completed = client.documents.wait_for_completion(job["jobId"])
print(f"Download URL: {completed['downloadUrl']}")

cURL

# Generate a document
curl -X POST https://api.rynko.dev/api/v1/documents/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "invoice",
    "format": "pdf",
    "variables": {
      "invoiceNumber": "INV-2026-001",
      "clientName": "Acme Technologies Pvt. Ltd.",
      "clientEmail": "accounts@acmetech.com",
      "lineItems": [
        {"description": "Technical Consulting", "quantity": 2, "price": 150.00},
        {"description": "Software License", "quantity": 1, "price": 500.00}
      ],
      "subtotal": 800.00,
      "tax": 80.00,
      "total": 880.00
    }
  }'

# Response includes a jobId - poll for completion
curl https://api.rynko.dev/api/v1/documents/jobs/JOB_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Run the code. In under a second, you'll get a signed download URL for your PDF. Click it — there's your document.

The generated PDF invoice — professional layout with line items, calculated totals, and branding.

Want Excel Instead?

Same template, different format:

// Node.js
const job = await rynko.documents.generateExcel({
  templateId: 'invoice',
  variables: { /* same variables */ },
});
# Python
job = client.documents.generate_excel(
    template_id="invoice",
    variables={ ... },
)

That's it. One template, both formats.

Step 5: Set Up Webhooks (Optional)

Instead of polling for completion, you can receive a webhook when your document is ready:

  1. Go to Settings > Webhooks in the dashboard

  2. Add your endpoint URL

  3. Select the document.generated event

When a document finishes generating, we'll POST to your endpoint with the download URL:

import { verifyWebhookSignature } from '@rynko/sdk';

app.post('/webhooks/rynko', (req, res) => {
  const event = verifyWebhookSignature({
    payload: req.body.toString(),
    signature: req.headers['x-rynko-signature'],
    secret: process.env.WEBHOOK_SECRET,
  });

  if (event.type === 'document.generated') {
    console.log('Document ready:', event.data.downloadUrl);
  }

  res.status(200).json({ received: true });
});

What's Next?

Now that you've generated your first document, here's what to explore:

  • Visual Designer — Design templates with drag-and-drop, live preview, and 28 component types

  • MCP Server — Let Claude or Cursor create and generate documents for you

  • API Reference — Full API documentation with interactive examples

  • Template Schema — Deep dive into template structure and capabilities

  • Integrations — Connect with Zapier, Make.com, n8n, and Google Sheets

Need Help?

Happy generating!

Disclosure: I ideate and draft content, then refine it with the aid of artificial intelligence tools like Claude and revise it to reflect my intended message.

Building with AI Agents

Part 15 of 17

How we built Rynko — a validation gateway and document generation platform for AI agents. Architecture decisions, MCP integrations, performance benchmarks, and lessons from shipping infrastructure that agents use autonomously.

Up next

How to Generate PDFs from Claude Desktop Using MCP

Turn Claude into a document generation machine. Create templates, generate invoices, reports, and more — all from a chat conversation.

More from this blog

B

Building Rynko

19 posts