Kepla API

Taxonomies

Taxonomies are defined categories for information in Kepla. They manage the options for activities, categories of relationships and funds for transactions. You can list, add and update taxonomies through the API, though deleting a taxonomy is not possible through the API or application.

Taxonomies Overview

{
  "accountId": "e1f4cca4-1cbc-42cb-bb2f-5bbbab513f5c",
String
  "id": "2a6bdad4-2f61-4aec-bd6f-8f4ffc626bf9",
String
  "meta": {
  "meta": { ... }
Object

Meta is only supported by "activity" taxonomies.

    "metaKey": {
    "metaKey": { ... }
Object

The object key is the ID for the meta field. It is how it is stored on an activity.

      "name": "Example Meta",
String

Used as a label in the app.

      "primary": false,
Boolean

If true the meta field will show above the activity comment in the app.

      "visible": true
Boolean

If false the meta field will be stored but not shown to the user when viewing a record's activities.

    }
  },
  "name": "Event",
String
  "number": false,
Boolean

Deprecated

  "readonly": false,
Boolean

System use only

  "taxonomy": "activity"
String
}

List Taxonomies

Open in API Explorer
GET /taxonomies

Returns a list of all taxonomies on the account. You can filter by the taxonomy type.

Example Request

Format:
curl --request GET \
  --url 'https://api.kepla.com/v1/taxonomies?taxonomy=activity' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer YOUR API KEY HERE'
require 'uri'
require 'net/http'

url = URI("https://api.kepla.com/v1/taxonomies?taxonomy=activity")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["authorization"] = 'Bearer YOUR API KEY HERE'

response = http.request(request)
puts response.read_body
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.kepla.com",
  "port": null,
  "path": "/v1/taxonomies?taxonomy=activity",
  "headers": {
    "accept": "application/json",
    "authorization": "Bearer YOUR API KEY HERE"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();
import http.client

conn = http.client.HTTPSConnection("api.kepla.com")

headers = {
    'accept': "application/json",
    'authorization': "Bearer YOUR API KEY HERE"
    }

conn.request("GET", "/v1/taxonomies?taxonomy=activity", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.kepla.com/v1/taxonomies?taxonomy=activity",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "authorization: Bearer YOUR API KEY HERE"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.kepla.com/v1/taxonomies?taxonomy=activity"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("accept", "application/json")
	req.Header.Add("authorization", "Bearer YOUR API KEY HERE")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}

Query Parameters

Name Type Required Description Example
taxonomy String Optional

Can be set to "activity", "fund" or "relationship". Leave blank to return everything.

activity

Responses

200 Success Taxonomies List
[
  "accountId": "e1f4cca4-1cbc-42cb-bb2f-5bbbab513f5c",
String
  "id": "2a6bdad4-2f61-4aec-bd6f-8f4ffc626bf9",
String
  "meta": {
  "meta": { ... }
Object

Meta is only supported by "activity" taxonomies.

    "metaKey": {
    "metaKey": { ... }
Object

The object key is the ID for the meta field. It is how it is stored on an activity.

      "name": "Example Meta",
String

Used as a label in the app.

      "primary": false,
Boolean

If true the meta field will show above the activity comment in the app.

      "visible": true
Boolean

If false the meta field will be stored but not shown to the user when viewing a record's activities.

    }
  },
  "name": "Event",
String
  "number": false,
Boolean

Deprecated

  "readonly": false,
Boolean

System use only

  "taxonomy": "activity"
String
]

Create a Taxonomy

Open in API Explorer
POST /taxonomies

Creates a new taxonomy

Example Request

Format:
curl --request POST \
  --url https://api.kepla.com/v1/taxonomies \
  --header 'accept: application/json' \
  --header 'authorization: Bearer YOUR API KEY HERE' \
  --header 'content-type: application/json' \
  --data '{"name":"My API Fund","taxonomy":"fund"}'
require 'uri'
require 'net/http'

url = URI("https://api.kepla.com/v1/taxonomies")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["authorization"] = 'Bearer YOUR API KEY HERE'
request["content-type"] = 'application/json'
request.body = "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}"

response = http.request(request)
puts response.read_body
var http = require("https");

var options = {
  "method": "POST",
  "hostname": "api.kepla.com",
  "port": null,
  "path": "/v1/taxonomies",
  "headers": {
    "accept": "application/json",
    "authorization": "Bearer YOUR API KEY HERE",
    "content-type": "application/json"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(JSON.stringify({ name: 'My API Fund', taxonomy: 'fund' }));
req.end();
import http.client

conn = http.client.HTTPSConnection("api.kepla.com")

payload = "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}"

headers = {
    'accept': "application/json",
    'authorization': "Bearer YOUR API KEY HERE",
    'content-type': "application/json"
    }

conn.request("POST", "/v1/taxonomies", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.kepla.com/v1/taxonomies",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "authorization: Bearer YOUR API KEY HERE",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.kepla.com/v1/taxonomies"

	payload := strings.NewReader("{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("accept", "application/json")
	req.Header.Add("authorization", "Bearer YOUR API KEY HERE")
	req.Header.Add("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}

Request Body

Name Type Required Description Example
payload Object Required
{
  "name": "My API Fund",
String
  "taxonomy": "fund"
String

Can be "activity", "fund" or "relationship".

}

Responses

201 Success Taxonomies Default
{
  "accountId": "e1f4cca4-1cbc-42cb-bb2f-5bbbab513f5c",
String
  "id": "2a6bdad4-2f61-4aec-bd6f-8f4ffc626bf9",
String
  "meta": {
  "meta": { ... }
Object

Meta is only supported by "activity" taxonomies.

    "metaKey": {
    "metaKey": { ... }
Object

The object key is the ID for the meta field. It is how it is stored on an activity.

      "name": "Example Meta",
String

Used as a label in the app.

      "primary": false,
Boolean

If true the meta field will show above the activity comment in the app.

      "visible": true
Boolean

If false the meta field will be stored but not shown to the user when viewing a record's activities.

    }
  },
  "name": "Event",
String
  "number": false,
Boolean

Deprecated

  "readonly": false,
Boolean

System use only

  "taxonomy": "activity"
String
}

Update a Taxonomy

Open in API Explorer
PUT /taxonomies/:taxonomy

Updates the name or meta of the specified taxonomy.

Example Request

Format:
curl --request PUT \
  --url https://api.kepla.com/v1/taxonomies/:taxonomy \
  --header 'accept: application/json' \
  --header 'authorization: Bearer YOUR API KEY HERE' \
  --header 'content-type: application/json' \
  --data '{"name":"My API Fund","taxonomy":"fund"}'
require 'uri'
require 'net/http'

url = URI("https://api.kepla.com/v1/taxonomies/:taxonomy")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)
request["accept"] = 'application/json'
request["authorization"] = 'Bearer YOUR API KEY HERE'
request["content-type"] = 'application/json'
request.body = "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}"

response = http.request(request)
puts response.read_body
var http = require("https");

var options = {
  "method": "PUT",
  "hostname": "api.kepla.com",
  "port": null,
  "path": "/v1/taxonomies/:taxonomy",
  "headers": {
    "accept": "application/json",
    "authorization": "Bearer YOUR API KEY HERE",
    "content-type": "application/json"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.write(JSON.stringify({ name: 'My API Fund', taxonomy: 'fund' }));
req.end();
import http.client

conn = http.client.HTTPSConnection("api.kepla.com")

payload = "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}"

headers = {
    'accept': "application/json",
    'authorization': "Bearer YOUR API KEY HERE",
    'content-type': "application/json"
    }

conn.request("PUT", "/v1/taxonomies/:taxonomy", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.kepla.com/v1/taxonomies/:taxonomy",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "authorization: Bearer YOUR API KEY HERE",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.kepla.com/v1/taxonomies/:taxonomy"

	payload := strings.NewReader("{\"name\":\"My API Fund\",\"taxonomy\":\"fund\"}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("accept", "application/json")
	req.Header.Add("authorization", "Bearer YOUR API KEY HERE")
	req.Header.Add("content-type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}

Path Parameters

Name Type Required Description Example
taxonomy String (uuid) Required

The taxonomy ID to update

04fe9a97-a579-43c5-bb1a-58ed29bf0a6a

Request Body

Name Type Required Description Example
payload Object Required
{
  "name": "My API Fund",
String
  "taxonomy": "fund"
String

Can be "activity", "fund" or "relationship".

}

Responses

200 Success Taxonomies Default
{
  "accountId": "e1f4cca4-1cbc-42cb-bb2f-5bbbab513f5c",
String
  "id": "2a6bdad4-2f61-4aec-bd6f-8f4ffc626bf9",
String
  "meta": {
  "meta": { ... }
Object

Meta is only supported by "activity" taxonomies.

    "metaKey": {
    "metaKey": { ... }
Object

The object key is the ID for the meta field. It is how it is stored on an activity.

      "name": "Example Meta",
String

Used as a label in the app.

      "primary": false,
Boolean

If true the meta field will show above the activity comment in the app.

      "visible": true
Boolean

If false the meta field will be stored but not shown to the user when viewing a record's activities.

    }
  },
  "name": "Event",
String
  "number": false,
Boolean

Deprecated

  "readonly": false,
Boolean

System use only

  "taxonomy": "activity"
String
}