Skip to main content
POST
/
voice
/
api
/
v1
/
template
Create Template
curl --request POST \
  --url https://api.eka.care/voice/api/v1/template \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Cardiology OPD Note",
  "desc": "Generate a cardiology outpatient note with these sections:\n## Chief Complaint\n## History of Present Illness\n## Examination (bullet points, include vitals table)\n## Assessment\n## Plan (numbered list with medications and follow-up date)\n",
  "section_ids": []
}
'
import requests

url = "https://api.eka.care/voice/api/v1/template"

payload = {
    "title": "Cardiology OPD Note",
    "desc": "Generate a cardiology outpatient note with these sections:
## Chief Complaint
## History of Present Illness
## Examination (bullet points, include vitals table)
## Assessment
## Plan (numbered list with medications and follow-up date)
",
    "section_ids": []
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    title: 'Cardiology OPD Note',
    desc: 'Generate a cardiology outpatient note with these sections:\n## Chief Complaint\n## History of Present Illness\n## Examination (bullet points, include vitals table)\n## Assessment\n## Plan (numbered list with medications and follow-up date)\n',
    section_ids: []
  })
};

fetch('https://api.eka.care/voice/api/v1/template', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.eka.care/voice/api/v1/template",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'title' => 'Cardiology OPD Note',
    'desc' => 'Generate a cardiology outpatient note with these sections:
## Chief Complaint
## History of Present Illness
## Examination (bullet points, include vitals table)
## Assessment
## Plan (numbered list with medications and follow-up date)
',
    'section_ids' => [
        
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "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"
)

func main() {

	url := "https://api.eka.care/voice/api/v1/template"

	payload := strings.NewReader("{\n  \"title\": \"Cardiology OPD Note\",\n  \"desc\": \"Generate a cardiology outpatient note with these sections:\\n## Chief Complaint\\n## History of Present Illness\\n## Examination (bullet points, include vitals table)\\n## Assessment\\n## Plan (numbered list with medications and follow-up date)\\n\",\n  \"section_ids\": []\n}")

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.eka.care/voice/api/v1/template")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"title\": \"Cardiology OPD Note\",\n  \"desc\": \"Generate a cardiology outpatient note with these sections:\\n## Chief Complaint\\n## History of Present Illness\\n## Examination (bullet points, include vitals table)\\n## Assessment\\n## Plan (numbered list with medications and follow-up date)\\n\",\n  \"section_ids\": []\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.eka.care/voice/api/v1/template")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"title\": \"Cardiology OPD Note\",\n  \"desc\": \"Generate a cardiology outpatient note with these sections:\\n## Chief Complaint\\n## History of Present Illness\\n## Examination (bullet points, include vitals table)\\n## Assessment\\n## Plan (numbered list with medications and follow-up date)\\n\",\n  \"section_ids\": []\n}"

response = http.request(request)
puts response.read_body
{
  "msg": "created successfully",
  "template_id": "tpl_7d1a2b3c4d5e"
}
{
  "error": {
    "code": "invalid_audio_format",
    "message": "Audio format 'audio/mp3' is not supported",
    "details": {}
  }
}
{
  "error": {
    "code": "invalid_audio_format",
    "message": "Audio format 'audio/mp3' is not supported",
    "details": {}
  }
}
Create a custom note template: just a title and a desc describing your format in plain text or markdown (sections, bullets, tables, tone). Always pass section_ids: [].
{
  "title": "Cardiology OPD Note",
  "desc": "## Chief Complaint\n## History\n## Examination (bullets, vitals table)\n## Plan (numbered, with follow-up date)",
  "section_ids": []
}
Use the returned template_id in Create Session or Process Template.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
title
string
required

Display name of the template.

Example:

"Cardiology OPD Note"

section_ids
string[]
required

Pass an empty array []. Describe your desired structure in desc instead.

Example:
[]
desc
string

The template instructions in plain text or markdown. Describe the sections, ordering, formatting (bullets, tables, headings) and tone you want in the generated note. This is what EkaScribe follows when generating notes with this template.

type
string

Template type. Use custom (default) for your own templates.

Example:

"custom"

Response

Template created

msg
string
Example:

"created successfully"

template_id
string
Example:

"tpl_7d1a2b3c4d5e"