Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/gridline:gridline-pull-education-documents-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: DigiLocker Pull Education Documents API
version: '1.0'
description: 'The Gridlines DigiLocker integration APIs enable you to fetch verified documents directly from government-issued sources, with the consent of the document owner.
The API provides a secure link to the DigiLocker page, where users can authenticate and choose to share their documents, ensuring compliance with DigiLocker''s consent-based access framework.
**Flow of the integration:**
Step 1: Create a Verification Request
To create a verification request with Gridlines, you need to submit a redirect URL to which the user will be redirected after authentication. If the request is successful, you will receive the DigiLocker authorization endpoint.
Step 2: Authorization
Use the DigiLocker authorization endpoint to redirect the user to the DigiLocker login page. Once the user enters their DigiLocker credentials, they will be redirected to the redirect URL shared in Step 1.
Step 3: View List of Issued Documents
Once the user has authorized access to the documents, you will be able to see which documents are available and authorized.
Step 4: Access User''s Documents
You can download and verify the documents in your preferred format. Documents are available in XML, PDF, and JSON formats.
> Additon of new fields in all the APIs should be permissible.'
contact:
name: OnGrid
url: ongrid.in
email: contact@ongrid.in
servers:
- url: https://api.gridlines.io
description: Production
security:
- X-API-Key: []
tags:
- name: Pull Education Documents
paths:
/digilocker/education/issuers:
get:
summary: Fetch Education Issuers
responses:
'200':
$ref: '#/components/responses/fetch-issuers'
'400':
$ref: '#/components/responses/Transaction-already-completed'
operationId: get-digilocker-education-issuers
security:
- X-API-Key: []
parameters:
- schema:
type: string
in: header
name: X-Auth-Type
description: API-Key
- schema:
type: string
in: header
name: X-Transaction-ID
description: Transaction ID
- schema:
type: string
in: header
name: X-Reference-ID
description: Reference ID
description: 'This API should be called only after the user has completed authentication on the DigiLocker login page. If authorization has been granted, the API will return a list of education institutes and corresponding documents that are issued by the institute. Each institute may support single or multiple documents, for each supported document consent is provided in the response which need to be shown to the user before pulling that particular document.
Response Codes:
| Sl | Status | Code | Description
| ---- | --------| ---------------------|-------------
| 1 | 200 | 1012 | No Issuers Found
| 2 | 200 | 1013 | Fetched Issuers
| 3 | 200 | 1001 | Session Expired
| 4 | 400 |DIGILOCKER_AUTHORIZATION_NOT_COMPLETED| Digilocker Authorization Not Completed'
tags:
- Pull Education Documents
x-internal: false
/digilocker/education/pull-document:
parameters: []
post:
summary: Pull Education Document
operationId: post-digilocker-education-pull-document
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
x-examples:
Example 1:
request_id: d7dcbba5-1d27-4dc5-b2f0-3be93d7cf73a
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
status: 200
data:
code: '1016'
message: Document added to digilocker.
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
issued_file:
uri: in.gov.cbse-HSCER
timestamp: 1696420025610
path: /education/pull-document
required:
- request_id
- transaction_id
- status
- data
- timestamp
- path
properties:
request_id:
type: string
transaction_id:
type: string
reference_id:
type: string
x-stoplight:
id: c58msz6ztvnue
status:
type: integer
data:
type: object
required:
- code
- message
- transaction_id
- issued_file
properties:
code:
type: string
message:
type: string
transaction_id:
type: string
issued_file:
type: object
required:
- uri
properties:
uri:
type: string
timestamp:
type: integer
path:
type: string
examples:
Success:
value:
request_id: d7dcbba5-1d27-4dc5-b2f0-3be93d7cf73a
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
status: 200
data:
code: '1016'
message: Document added to digilocker.
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
issued_file:
uri: in.gov.cbse-HSCER-XXXXXXXXX
timestamp: 1696420025610
path: /education/pull-document
'400':
$ref: '#/components/responses/Bad-Request'
description: 'This API should be called to add education documents to the digilocker account. It takes the `issuer_id` of the institute that issues the required document, `document_type` of the document that need to be added to the account and an object `parameters` which contains key-value pair of the parameters that are required by the institute to issue the document e.g. rollno, year. All the required data to pull the document can be fetched from the previous call i.e. `fetch-issuers`.
> DigiLocker''s consent message should be displayed to the user and explicit consent should be taken for sharing their Aadhaar details with issuing organizations in the format prescribed in Fetch Issuers API response
Response Codes:
| Sl | Status | Code | Description
| ---- | --------| ---------------------|-------------
| 1 | 200 | 1009 | Aadhaar not linked
| 2 | 200 | 1014 | Document Not Found
| 3 | 200 | 1015 | Document Already Added
| 4 | 200 | 1016 | Document Added
| 5 | 200 | 1018 | User Consent not available for the requested document.
| 6 | 400 |INVALID_PARAMETER_VALUE| Invalid parameter entered
| 7 | 400 | ISSUER_ERROR | Issuer error
| 8 | 400 |DIGILOCKER_AUTHORIZATION_NOT_COMPLETED| Digilocker Authorization Not Completed'
security:
- X-API-Key: []
requestBody:
content:
application/json:
schema:
type: object
x-examples:
Example 1:
issuer_id: '000027'
document_type: HSCER
parameters:
rollno: ''
year: ''
properties:
issuer_id:
type: string
document_type:
type: string
parameters:
type: object
properties:
parameter_1:
type: string
x-stoplight:
id: mwfkbslbydiig
parameter_2:
type: string
x-stoplight:
id: qhcolre3tl6kf
required:
- issuer_id
- document_type
- parameters
examples:
Example:
value:
issuer_id: '000027'
document_type: HSCER
parameters:
rollno: '112233'
year: '2017'
description: ''
parameters:
- schema:
type: string
in: header
name: X-Auth-Type
description: API-Key
required: true
- schema:
type: string
in: header
name: X-Transaction-ID
description: Transaction ID
required: true
- schema:
type: string
in: header
name: X-Reference-ID
description: Reference ID
tags:
- Pull Education Documents
x-internal: false
components:
responses:
Bad-Request:
description: Bad Request
content:
application/json:
schema:
type: object
x-examples:
Example 1:
request_id: 12297a5f-a5f6-4566-8f87-a114e8d15f03
transaction_id: 818040d7-b11d-48d8-bc2c-86ca9b319197
status: 400
error:
code: BAD_REQUEST
message: Bad request.
type: https://docs.gridlines.io/#:~:text=Consent%20not%20provided.-,400,-BAD_REQUEST
metadata:
fields:
- field: mobile_number
message: Invalid Mobile Number.
timestamp: 1756375371171
path: /digilocker/verify-account
required:
- request_id
- transaction_id
- status
- error
- timestamp
- path
properties:
request_id:
type: string
transaction_id:
type: string
status:
type: integer
error:
type: object
required:
- code
- message
- type
- metadata
properties:
code:
type: string
message:
type: string
type:
type: string
metadata:
type: object
required:
- fields
properties:
fields:
type: array
items:
type: object
required:
- field
- message
properties:
field:
type: string
message:
type: string
timestamp:
type: integer
path:
type: string
examples:
Bad request:
value:
request_id: 12297a5f-a5f6-4566-8f87-a114e8d15f03
transaction_id: 818040d7-b11d-48d8-bc2c-86ca9b319197
status: 400
error:
code: BAD_REQUEST
message: Bad request.
type: https://docs.gridlines.io/#:~:text=Consent%20not%20provided.-,400,-BAD_REQUEST
metadata:
fields:
- field: mobile_number
message: Invalid Mobile Number.
timestamp: 1756375371171
path: /digilocker/verify-account
CONSENT_NOT_GIVEN:
value:
request_id: 6a203afe-547c-4c25-b3b5-aa04e002ec29
transaction_id: 01c56ebb-d916-4c62-9393-7133667b147a
status: 400
error:
code: CONSENT_NOT_GIVEN
message: Consent not provided.
type: https://docs.gridlines.io/#:~:text=DESCRIPTION-,400,-CONSENT_NOT_GIVEN
timestamp: 1756375430626
path: /digilocker/verify-account
Transaction-already-completed:
description: Bad Request
content:
application/json:
schema:
type: object
x-examples:
Example 1:
request_id: ca64711c-36df-415e-9c41-763d42bbee75
status: 400
error:
code: TRANSACTION_ALREADY_COMPLETED
message: Transaction already completed. Cannot do further operation on this transaction.
type: https://docs.gridlines.io/#:~:text=already%20being%20processed-,400,-TRANSACTION_ALREADY_COMPLETED
timestamp: 1681816868390
path: /issued-files
properties:
request_id:
type: string
transaction_id:
type: string
x-stoplight:
id: a8nebospehre0
reference_id:
type: string
x-stoplight:
id: w03u5lvxkvhyb
status:
type: integer
error:
type: object
properties:
code:
type: string
message:
type: string
type:
type: string
timestamp:
type: integer
path:
type: string
examples:
Transaction already completed:
value:
request_id: ca64711c-36df-415e-9c41-763d42bbee75
status: 400
error:
code: TRANSACTION_ALREADY_COMPLETED
message: Transaction already completed. Cannot do further operation on this transaction.
type: https://docs.gridlines.io/#:~:text=already%20being%20processed-,400,-TRANSACTION_ALREADY_COMPLETED
timestamp: 1681816868390
path: /issued-files
Authorization Not Completed:
value:
request_id: ab1fe085-0e27-4e1b-b52d-acb7153e1019
status: 400
error:
code: DIGILOCKER_AUTHORIZATION_NOT_COMPLETED
message: Please complete the DigiLocker authorization.
type: about:blank
timestamp: 1681812669954
path: /issued-files
fetch-issuers:
description: OK
content:
application/json:
schema:
type: object
x-examples:
Example 1:
request_id: 69cf8790-1a9a-4e55-83dc-8474fb363426
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
status: 200
data:
code: '1013'
message: Fetched issuers.
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
issuers:
- issuer_id: 008878
name: ' Khangchendzonga State University, Sikkim'
description: "Sikkim State University is issuing their Digital awards for the following years, through DigiLocker. These can be pulled by students into their DigiLocker accounts \n Degree - 2020,2021,2022 \n Marksheet - 2020,2021,2022 \n Diploma - NA \n Transcript - NA"
logo: https://cf-media.api-setu.in/logo/issuers/008878.png
supported_documents:
- type: DGCER
description: Degree/ Diploma Certificate
parameters:
- name: ROLL NO
key: RROLL
sample_value: '130001'
- name: REGN NO
key: REGNO
sample_value: 8/300001
- name: YEAR
key: YEAR
allowed_values:
- '2020'
- '2021'
- '2022'
- '2023'
sample_value: '2020'
digilocker_consent: I provide my consent to share my Aadhaar Number, Date of Birth and Name from my Aadhaar eKYC information with Khangchendzonga State University, Sikkim, All States the for the purpose of fetching my Degree/ Diploma Certificate into DigiLocker.
timestamp: 1696420006988
path: /education/issuers
properties:
request_id:
type: string
transaction_id:
type: string
reference_id:
type: string
x-stoplight:
id: 730u0ahtubeef
status:
type: integer
data:
type: object
properties:
code:
type: string
message:
type: string
transaction_id:
type: string
issuers:
type: array
items:
type: object
properties:
issuer_id:
type: string
name:
type: string
description:
type: string
logo:
type: string
supported_documents:
type: array
items:
type: object
properties:
type:
type: string
description:
type: string
parameters:
type: array
items:
type: object
properties:
name:
type: string
key:
type: string
sample_value:
type: string
allowed_values:
type: array
items:
type: string
digilocker_consent:
type: string
timestamp:
type: integer
path:
type: string
examples:
Success:
value:
request_id: 69cf8790-1a9a-4e55-83dc-8474fb363426
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
status: 200
data:
code: '1013'
message: Fetched issuers.
transaction_id: 9033b7da-18ce-4e00-9f28-6b309268f5ea
issuers:
- issuer_id: '003063'
name: A P Goyal Shimla University
description: "A P Goyal Shimla University is issuing their Digital awards for the following years, through DigiLocker. These can be pulled by students into their DigiLocker accounts \n Degree - 2014,2015,2016,2017,2018,2020 \n Marksheet - NA \n Diploma - NA \n Transcript - NA"
logo: https://cf-media.api-setu.in/logo/issuers/003063.png
supported_documents:
- type: DGCER
description: Degree/ Diploma Certificate
parameters:
- name: ROLL NO
key: RROLL
sample_value: '130001'
- name: REGN NO
key: REGNO
sample_value: 8/300001
- name: YEAR
key: YEAR
allowed_values:
- '2014'
- '2015'
- '2016'
- '2017'
- '2018'
- '2019'
- '2020'
sample_value: '2014'
digilocker_consent: I provide my consent to share my Aadhaar Number, Date of Birth and Name from my Aadhaar eKYC information with A P Goyal Shimla University, All States the for the purpose of fetching my Degree/ Diploma Certificate into DigiLocker.
- issuer_id: 003386
name: Abhilashi University
description: "Abhilashi University is issuing their Digital awards for the following years, through DigiLocker. These can be pulled by students into their DigiLocker accounts \n Degree - 2016,2017,2018,2019 \n Marksheet - NA \n Diploma - 2017,2018,2019 \n Transcript - NA"
logo: https://cf-media.api-setu.in/logo/issuers/003386.png
supported_documents:
- type: DGCER
description: Degree/ Diploma Certificate
parameters:
- name: ROLL NO
key: RROLL
sample_value: '130001'
- name: REGN NO
key: REGNO
sample_value: 8/300001
- name: YEAR
key: YEAR
allowed_values:
- '2016'
- '2017'
- '2018'
- '2019'
- '2022'
sample_value: '2016'
digilocker_consent: I provide my consent to share my Aadhaar Number, Date of Birth and Name from my Aadhaar eKYC information with Abhilashi University, All States the for the purpose of fetching my Degree/ Diploma Certificate into DigiLocker.
- type: DIPCR
description: Diploma Certificate
parameters:
- name: ROLL NO
key: RROLL
sample_value: '130001'
- name: REGN NO
key: REGNO
sample_value: 8/300001
- name: YEAR
key: YEAR
allowed_values:
- '2016'
- '2017'
- '2018'
- '2019'
- '2022'
sample_value: '2016'
digilocker_consent: I provide my consent to share my Aadhaar Number, Date of Birth and Name from my Aadhaar eKYC information with Abhilashi University, All States the for the purpose of fetching my Diploma Certificate into DigiLocker.
- issuer_id: '010212'
name: Academic Bank of Credits
description: Academic Bank of Credits has been established on the lines of the National Academic Depository (NAD), in the sense, NAD is the backbone of ABC, where the students' academic data are held and academic awards are stored (i.e. storehouse of academic awards). Despite the fact that ABC enables students to register or commence credit transfer, the final outcomes of credit redemption and issuance of certificates, as well as the compilation of award records, are administered by academic institutions via the NAD Platform. Hence being the owner of academic awards, Academic Institutions must mandatorily register themselves under ABC via NAD
logo: https://cf-media.api-setu.in/logo/issuers/010212.png
supported_documents:
- type: ABCID
description: ABC ID Card
parameters:
- name: Admission Year
key: AdmissionYear
allowed_values:
- '2023'
- '2022'
- '2021'
- '2020'
- '2019'
- '2018'
- '2017'
- '2016'
- '2015'
- '2014'
- '2013'
sample_value: '2023'
- name: Identity Type
key: IdentityType
allowed_values:
- Roll Number
- Registration Number
- Enrolment Number
- New Admission
- None
sample_value: Roll Number
- name: Identity Value
key: IdentityValue
sample_value: 16270XX
- name: Institution Name
key: level1
digilocker_consent: I provide my consent to share my Aadhaar Number, Date of Birth and Name from my Aadhaar eKYC information with Academic Bank of Credits, All States the for the purpose of fetching my ABC ID Card into DigiLocker.
timestamp: 1696420006988
path: /education/issuers
securitySchemes:
X-API-Key:
type: apiKey
in: header
name: X-API-Key
x-stoplight:
id: 0s4gcyfc0i7zv
x-internal: false