⚓️ Minimalist HTTP client for JSON payloads.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Minimalist HTTP client for GET and POSTing JSON payloads

  • Zero dependencies: perfect for AWS Lambda
  • Sensible default: assumes buffered JSON responses
  • System symmetry: Node style errback API, or Promises for use with Async/Await
npm i tiny-json-http --save


  • tiny.get(options[, callback])
  • tiny.post(options[, callback])
  • tiny.put(options[, callback])
  • tiny.del(options[, callback)]

*callback is optional, tiny methods will return a promise if no callback is provided


  • url required
  • data form vars for tiny.post, tiny.put, and tiny.delete otherwise querystring vars for tiny.get
  • headers key/value map used for headers (including support for uploading files with multipart/form-data)
  • buffer if set to true the response body is returned as a buffer

callback values

  • err a real javascript Error if there was one
  • data an object with headers and body keys


  • if no callback is provided to the tiny-json-http methods, a promise is returned
  • perfect for use of async/await


With Async / Await

var tiny = require('tiny-json-http')
var url = 'http://www.randomkittengenerator.com'

;(async function _iife() {
  try {
    console.log(await tiny.get({url}))
  } catch (err) {
    console.log('ruh roh!', err)

With Callback

var tiny = require('tiny-json-http')
var url = 'http://www.randomkittengenerator.com'

tiny.get({url}, function _get(err, result) {
  if (err) {
    console.log('ruh roh!', err)
  else {

Check out the tests for more examples! 💟