Find an API

Search public APIs with auth details & Postman guides

← All APIs

DigiLocker Issuer APIs

apisetu · Government

Government No Auth Free & Open open_data

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

No authentication requiredFree to use with no key needed.

Sample Requests

POST Pull Doc Request API.

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

https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull DOC Request API Path

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));
POST Pull URI Request API .

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

https://api.apis.guru/v2/specs/apisetu.gov.in/issuer/3.0.0/Your Pull URI Request API Path

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

Get Postman ↗
  1. 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?

Open documentation ↗