Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@anvilco/anvil

Package Overview
Dependencies
Maintainers
4
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@anvilco/anvil

Anvil API Client

  • 2.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8.2K
decreased by-17.82%
Maintainers
4
Weekly downloads
 
Created
Source

Anvil API Client for Node

Anvil is a suite of tools for managing document-based workflows:

  1. Anvil Workflows converts your PDF forms into simple, intuitive websites that fill the PDFs and gather signatures for you.
  2. Anvil PDF Filling API allows you to fill any PDF with JSON data.

Currently, this node client only supports our PDF filling API.

Usage

yarn add @anvilco/anvil
npm install @anvilco/anvil

A basic example converting your JSON to a filled PDF, then saving the PDF to a file:

import fs from 'fs'
import Anvil from '@anvilco/anvil'

// The ID of the PDF template to fill
const pdfTemplateID = 'kA6Da9CuGqUtc6QiBDRR'
// Your API key from your Anvil organization settings
const apiKey = '7j2JuUWmN4fGjBxsCltWaybHOEy3UEtt'

// JSON data to fill the PDF
const exampleData = {
  "title": "My PDF Title",
  "fontSize": 10,
  "textColor": "#CC0000",
  "data": {
    "someFieldId": "Hello World!"
  }
}
const anvilClient = new Anvil({ apiKey })
const { statusCode, data } = await anvilClient.fillPDF(pdfTemplateID, exampleData)

console.log(statusCode) // => 200

// Data will be the filled PDF raw byes
fs.writeFileSync('output.pdf', data, { encoding: null })

API

new Anvil({ apiKey })

Creates an Anvil client instance.

  • apiKey (String) - your API key from your Anvil organization settings
const anvilClient = new Anvil({ apiKey })

Anvil::fillPDF(pdfTemplateID, payload)

Fills a PDF with your JSON data.

First, you will need to have uploaded a PDF to Anvil. You can find the PDF template's id on the API Info tab of your PDF template's page:

pdf-template-id

An example:

const pdfTemplateID = 'kA6Da9CuGqUtc6QiBDRR'
// Your API key from your Anvil organization settings
const apiKey = '7j2JuUWmN4fGjBxsCltWaybHOEy3UEtt'

// JSON data to fill the PDF
const payload = {
  "title": "My PDF Title",
  "fontSize": 10,
  "textColor": "#CC0000",
  "data": {
    "someFieldId": "Hello World!"
  }
}
const anvilClient = new Anvil({ apiKey })
const { statusCode, data } = await anvilClient.fillPDF(pdfTemplateID, payload)
  • pdfTemplateID (String) - The id of your PDF template from the Anvil UI
  • payload (Object) - The JSON data that will fill the PDF template
    • title (String) - optional Set the title encoded into the PDF document
    • fontSize (Number) - optional Set the fontSize of all filled text. Default is 10.
    • color (String) - optional Set the text color of all filled text. Default is dark blue.
    • data (Object) - The data to fill the PDF. The keys in this object will correspond to a field's ID in the PDF. These field IDs and their types are available on the API Info tab on your PDF template's page in the Anvil dashboard.
      • For example { "someFieldId": "Hello World!" } }
  • Returns a Promise that resolves to an Object
    • statusCode (Number) - the HTTP status code; 200 is success
    • data (Buffer) - The raw binary data of the filled PDF if success
    • errors (Array of Objects) - Will be present if status >= 400. See Errors
      • message (String)

Rate Limits

Our API has request rate limits in place. This API client handles 429 Too Many Requests errors by waiting until it can retry again, then retrying the request. The client attempts to avoid 429 errors by throttling requests after the number of requests within the specified time period has been reached.

See the Anvil API docs for more information on the specifics of the rate limits.

More Info

See the PDF filling API docs for more information.

Examples

Check out the example folder for running usage examples!

Development

First install the dependencies

yarn install

Running tests

yarn test
yarn test:watch

Building with babel will output in the /lib directory.

yarn test

# Watches the `src` and `test` directories
yarn test:watch

Keywords

FAQs

Package last updated on 20 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc