curl --request POST \
--url https://api.eka.care/abdm/v1/care-contexts/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"abha_address": "<string>",
"care_contexts": [
{
"care_context_id": "<string>",
"data": "<string>",
"display": "<string>",
"hi_types": [
"<string>"
]
}
],
"oid": "<string>",
"partner_user_id": "<string>"
}
'import requests
url = "https://api.eka.care/abdm/v1/care-contexts/link"
payload = {
"abha_address": "<string>",
"care_contexts": [
{
"care_context_id": "<string>",
"data": "<string>",
"display": "<string>",
"hi_types": ["<string>"]
}
],
"oid": "<string>",
"partner_user_id": "<string>"
}
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({
abha_address: '<string>',
care_contexts: [
{
care_context_id: '<string>',
data: '<string>',
display: '<string>',
hi_types: ['<string>']
}
],
oid: '<string>',
partner_user_id: '<string>'
})
};
fetch('https://api.eka.care/abdm/v1/care-contexts/link', 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/abdm/v1/care-contexts/link",
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([
'abha_address' => '<string>',
'care_contexts' => [
[
'care_context_id' => '<string>',
'data' => '<string>',
'display' => '<string>',
'hi_types' => [
'<string>'
]
]
],
'oid' => '<string>',
'partner_user_id' => '<string>'
]),
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/abdm/v1/care-contexts/link"
payload := strings.NewReader("{\n \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\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/abdm/v1/care-contexts/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/abdm/v1/care-contexts/link")
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 \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"error": "<string>",
"source_error": {
"code": "<string>",
"message": "<string>"
}
}{
"code": 123,
"error": "<string>",
"source_error": {
"code": "<string>",
"message": "<string>"
}
}Care context linking
Use this API to link a care context to the patient’s ABHA address. A care context represents a visit, test, or any logical grouping of health records.
After calling this API, listen for the abha.link_care_context webhook to confirm whether the linking was successful. Once linked, other HIUs can request data for this care context through ABDM’s consent flow.
You can optionally pass the FHIR data as a base64-encoded string in the data field. If provided, Eka stores it and handles data sharing automatically — you won’t need to handle the abha.hip_data_fetch webhook. If not provided, you will receive the abha.hip_data_fetch webhook when an HIU requests the data.
curl --request POST \
--url https://api.eka.care/abdm/v1/care-contexts/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"abha_address": "<string>",
"care_contexts": [
{
"care_context_id": "<string>",
"data": "<string>",
"display": "<string>",
"hi_types": [
"<string>"
]
}
],
"oid": "<string>",
"partner_user_id": "<string>"
}
'import requests
url = "https://api.eka.care/abdm/v1/care-contexts/link"
payload = {
"abha_address": "<string>",
"care_contexts": [
{
"care_context_id": "<string>",
"data": "<string>",
"display": "<string>",
"hi_types": ["<string>"]
}
],
"oid": "<string>",
"partner_user_id": "<string>"
}
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({
abha_address: '<string>',
care_contexts: [
{
care_context_id: '<string>',
data: '<string>',
display: '<string>',
hi_types: ['<string>']
}
],
oid: '<string>',
partner_user_id: '<string>'
})
};
fetch('https://api.eka.care/abdm/v1/care-contexts/link', 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/abdm/v1/care-contexts/link",
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([
'abha_address' => '<string>',
'care_contexts' => [
[
'care_context_id' => '<string>',
'data' => '<string>',
'display' => '<string>',
'hi_types' => [
'<string>'
]
]
],
'oid' => '<string>',
'partner_user_id' => '<string>'
]),
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/abdm/v1/care-contexts/link"
payload := strings.NewReader("{\n \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\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/abdm/v1/care-contexts/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eka.care/abdm/v1/care-contexts/link")
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 \"abha_address\": \"<string>\",\n \"care_contexts\": [\n {\n \"care_context_id\": \"<string>\",\n \"data\": \"<string>\",\n \"display\": \"<string>\",\n \"hi_types\": [\n \"<string>\"\n ]\n }\n ],\n \"oid\": \"<string>\",\n \"partner_user_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"error": "<string>",
"source_error": {
"code": "<string>",
"message": "<string>"
}
}{
"code": 123,
"error": "<string>",
"source_error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
The API requires a Bearer token (JWT) for authentication.
Headers
Eka User ID (OID)
Partner User ID
Partner HIP ID
Body
Response
Accepted
Was this page helpful?

