DigiLocker Issuer APIs
apisetu · Government
This document provides detailed specification of the Digital Locker Pull APIs. The Pull model of integration with Digital Locker enables a Digital Locker user to search a document/certificate from issuer repository and fetch (pull) it into Digital Locker. The issuer departments can use these APIs for the documents that are not Aadhaar seeded. The issuer organization integrating with Digital Locker maintains the documents/certificates in its own repository (database or file system). The issuer ap
Authentication
Sample Requests
The Pull Doc Request API has to be implemented by the issuers and will be consumed by Digital Locker system. This API will be invoked when the resident clicks on the URI displayed in the Issued documents section of DigLocker. The issuer API will by sending the certificate data. The certificate data
Hover any highlighted part to learn what it does
curl -X POST "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path"
import requests
response = requests.post(
"https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path';
const response = await fetch(url, {
method: 'POST',
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path"
req, _ := http.NewRequest("POST", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path";
$opts = ["http" => [
"method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));The Pull URI Request API has to be implemented by the issuers and will be consumed by Digital Locker application. This API will be invoked when a citizen searches the issuer repository for his/her certificate. If the certificate data is Aadhaar seeded, the issuer may choose to use Aadhaar number as
Hover any highlighted part to learn what it does
curl -X POST "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path"
import requests
response = requests.post(
"https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path",
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path';
const response = await fetch(url, {
method: 'POST',
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path"
req, _ := http.NewRequest("POST", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path";
$opts = ["http" => [
"method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with DigiLocker Issuer APIs?
DigiLocker Issuer APIs is a Government API. Developers commonly use government APIs for:
- surfacing public datasets in citizen-facing apps
- building transparency and civic engagement tools
- accessing legislation, court records, and official data
- powering research and journalism tools
- creating compliance and regulatory monitoring dashboards
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. DigiLocker Issuer APIs is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?