Konch API (2.1)

Download OpenAPI specification:Download

Konch API Support: support@konch.ai URL: https://www.konch.ai License: Konch

Introduction

Konch was built as an API first so all our operations are performed as data requests to our knch.io server. We have also built our platform from the ground up with GDPR in mind. Our EU and US clusters are seperated by the "eu" subdomain.

Region API URL
EU eu.knch.io
US (Non-EU) konch.io

Authentication

You can generate your API Key via https://app.konch.ai/settings/integrations. All requests require the "key" and its related user "id" as header parameters.

Getting started guide

Please see our path definitions in the guide below. You will notice some endpoints use POST instead of GET for get-like requests. That is becuase some endpoints required body content for pagination or other object-formed variables. Additionally, we have evolved our offering since launch and some endpoints in V1 addmitingly have cruft. We are currently working on a new set of API endpoints for our V2 release which will be far more RESTful and intuitive. Our V2 endpoints plan to be backward compatible.

To help kick start development, here is a the Start Processing POST request in various flavors.

cURL

curl --request POST \
  --url https://konch.io/pipeline/dev/user/user-id-here/collections/ \
  --header 'Content-Type: application/json' \
  --header 'id: user-id-here' \
  --header 'key: user-generated-key-here' \
  --data '{
    "url": "https://.....public_accessible.mp4",
    "orgId": "your-org-id",
    "languageCode": "en-US",
    "name": "Test"
}'

Golang

package main

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

func main() {

    url := "https://konch.io/pipeline/dev/user/user-id-here/collections/"

    payload := strings.NewReader("{\n\t\"url\": \"https://.....public_accessible.mp4\",\n\t\"orgId\": \"your-org-id\",\n\t\"languageCode\": \"en-US\",\n\t\"name\": \"Test\"\n}")

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

    req.Header.Add("id", "user-id-here")
    req.Header.Add("key", "user-generated-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))

}

Python

import requests

url = "https://konch.io/pipeline/dev/user/user-id-here/collections/"

payload = {
    "url": "https://.....public_accessible.mp4",
    "orgId": "your-org-id",
    "languageCode": "en-US",
    "name": "Test"
}
headers = {
    "id": "user-id-here",
    "key": "user-generated-key-here",
    "Content-Type": "application/json"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)

Javascript

fetch("https://konch.io/pipeline/dev/user/user-id-here/collections/", {
  "method": "POST",
  "headers": {
    "id": "user-id-here",
    "key": "user-generated-key-here",
    "Content-Type": "application/json"
  },
  "body": "{\"url\":\"https://.....public_accessible.mp4\",\"orgId\":\"your-org-id\",\"languageCode\":\"en-US\",\"name\":\"Test\"}"
})
.then(response => {
  console.log(response);
})
.catch(err => {
  console.error(err);
});

And now, on to the API library!

User

User plans, usage, and related collections.

Plan and Usage

Get user's plan and overage details

Request Body schema: application/json
orgId
string <uuid>

If the user wants the parent org info.

userId
string <uuid>

For user specific usage and plan info.

Request samples

Content type
application/json
{
  • "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}

Get collections

Get the user's collections

Request Body schema: application/json
limit
number
nextPage
string <uuid>
orgId
string <uuid>
orgWide
boolean
startTime
number <epoch>
endTime
number <epoch>

Request samples

Content type
application/json
{
  • "limit": 0,
  • "nextPage": "7e49edcd-d10b-4373-98b4-f553146b4ad9",
  • "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
  • "orgWide": true,
  • "startTime": 0,
  • "endTime": 0
}

List Dictionary

Get the user's dictionaries

Get Dictionary

Get the user's dictionary

Update Dictionary

Update the user's dictionary

Request Body schema: application/json
name
string
language
string
object

Request samples

Content type
application/json
{
  • "name": "string",
  • "language": "string",
  • "terms":
    {
    }
}

Delete Dictionary

Delete the user's dictionary

Pipeline

When assets are submitted they are placed into our pipeline for processing.

Start Processing

Start processing a collection media asset.

Request Body schema: application/json
url
required
string <uri>

URL of asset

languageCode
required
string
orgId
required
string <uuid>

Workspace Unique Identifier

name
string
Default: "Untitled"
webhook
string <uri>

Callback URL pinged when completed

isPrecision
boolean
Default: false

Push to Precision after Draft is complete.

description
string
hints
object <array>

Suggest words and speakers names to help Draft A.I. or Precision target sounds more accurately.

Request samples

Content type
application/json
{
  • "languageCode": "en-US",
  • "orgId": "abcd-123",
  • "name": "My Collection",
  • "webhook": "http://example.com",
  • "isPrecision": false,
  • "description": "The rise and fall of rome.",
  • "hints":
    [
    ]
}

Ingest 3rd Party Transcript

Push an existing transcipt JSON output from another 3rd party platform (ex. Google) for editing.

Request Body schema: application/json
languageCode
required
string

Language Code

orgId
required
string <uuid>
media
string <uri>

URL of asset

transcript
string <uri>

URL of JSON asset