kvp.io docs

Overview

Getting started with kvp.io is a simple. Our service is exposed via a REST API that lives at api.kvp.io. If you're familiar with the use of REST APIs then you're already half-way there. The basics are simple:

kvp.io can be used for just about anything that requires simple value or document storage and generation. Values can be any JSON-compatible type. Templates are plain text that leverage the powerful Jinja2 templating language. Once you get a feel for the flexibility and power of templates, you'll find yourself using them everywhere.

Future Ops

kvp.io is a micro-service designed for IT people and, being IT people ourselves, we know that when building, operating, and maintaining systems, complexitiy is never too far away. So, for us, simplicity in comprehension and use are paramount. If you think something should be added, changed, or removed, let use know. We love feedback and we're open to any ideas that help kvp.io grow up healthy. Send us a note at support@kvp.io or drop by #kvp on irc.freenode.net

API Security

kvp.io uses Basic Auth and HTTPS. In the future we plan to implement more advanced security measures but for now, you need only to provide your API key as the username. No password is required.

That said, technology cannot solve people problems. You are responsible for the dissemination of your API key to authorized entities. In other words, don't 'store' it on a sticky note under your keyboard.

API Limits

Currently, kvp.io is in public beta. Because nothing is free, there are limits on the service. This serves two purposes. First, we want to see if anyone finds this service interesting and useful. Second, we want to understand usage requirements outside of our own.

That said, you get:

Granted, that's not huge. So if you find you need more, just contact us at support@kvp.io and we'll see what we can do.

API Versioning

We version our API with a single number of the format v<int>. So for version 1, the api endpoint is:

https://api.kvp.io/v1/

API Documentation

Account

Interacting with account information.

GET /account/

Returns account information.

Parameters

Arguments

Returns

Buckets

Interacting with key/value pairs.

GET /bucket/

Returns a list of all keys under which values are stored.

Parameters

Arguments

Returns

GET /bucket/key[/subkey...]

Returns the value stored under the specified key. Using key / subkey returns nested values.

Parameters

Arguments

Returns

POST /bucket/key[/subkey...]

Sets the value of the specified key. Using key / subkey sets a nested value.

Parameters

Arguments

Returns

DELETE /bucket/key[/subkey...]

Deletes the value and the specified key. Using key / subkey deletes a nested value.

Parameters

Arguments

Returns

Templates

Interacting with template documents.

GET /template/

Returns a list of all keys under which templates are stored.

Parameters

Arguments

Returns

GET /template/key

Renders and returns the template stored under the specified key.

If the raw parameter is sent, the template is returned in it's original, un-rendered form.

If JSON is sent, the template is rendered using a merge of bucket data and the received JSON data with received data taking precedence. In other words, sending a JSON body overrides bucket data.

Parameters

Arguments

Returns

POST /template/key

Sets the template document at the specified key.

Parameters

Arguments

Returns

DELETE /template/key

Deletes the template document and the specified key.

Parameters

Arguments

Returns