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 |
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.
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 --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"
}'
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))
}
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)
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!
Get user's plan and overage details
orgId | string <uuid> If the user wants the parent org info. |
userId | string <uuid> For user specific usage and plan info. |
{- "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
Get the user's collections
limit | number |
nextPage | string <uuid> |
orgId | string <uuid> |
orgWide | boolean |
startTime | number <epoch> |
endTime | number <epoch> |
{- "limit": 0,
- "nextPage": "7e49edcd-d10b-4373-98b4-f553146b4ad9",
- "orgId": "25b2c2d5-a7fc-47d0-89e4-8709a1560bfa",
- "orgWide": true,
- "startTime": 0,
- "endTime": 0
}
Update the user's dictionary
name | string |
language | string |
object |
{- "name": "string",
- "language": "string",
- "terms": {
- "word": "sound1, ... soundN",
- "howdy": "How Dee, howdee",
- "Jenkins": "jay kins, jank ins"
}
}
Start processing a collection media asset.
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. |
{- "languageCode": "en-US",
- "orgId": "abcd-123",
- "name": "My Collection",
- "isPrecision": false,
- "description": "The rise and fall of rome.",
- "hints": [
- {
- "content": "financial crisis"
}, - {
- "content": "gnocchi",
- "sounds_like": [
- "nyohki",
- "nokey",
- "nochi"
]
}, - {
- "content": "CEO",
- "sounds_like": [
- "C.E.O."
]
}, - {
- "content": "Janey Downaby",
- "sounds_like": [
- "Jay knee down a be"
], - "is_speaker": true
}
]
}
Push an existing transcipt JSON output from another 3rd party platform (ex. Google) for editing.
languageCode required | string Language Code |
orgId required | string <uuid> |
media | string <uri> URL of asset |
transcript | string <uri> URL of JSON asset |