Indian Institute of Technology Kanpur 2 FA API
Handle two factor authentication flows
Handle two factor authentication flows
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/iit-kanpur-2-fa-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
contact:
name: Koha Development Team
url: https://koha-community.org/
description: '## Background
The API supports two sets of endpoints, one targetted at library staff and the other at at library users.'
license:
name: GPL v3,
url: http://www.gnu.org/licenses/gpl.txt
title: Koha REST 2fa API
version: '1'
servers:
- url: https://libserv.iitk.ac.in/api/v1
description: PKK Library Koha REST API (production)
tags:
- description: Handle two factor authentication flows
name: 2 FA
x-displayName: Two factor authentication
paths:
/auth/otp/token_delivery:
post:
tags:
- 2 FA
summary: Send OTP token for second step authentication
operationId: send_otp_token
responses:
'200':
description: OK
content:
application/json:
schema:
additionalProperties: false
properties:
access_token:
type: string
expires_in:
type: integer
token_type:
type: string
type: object
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'401':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
'403':
description: Access forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'404':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
'500':
description: 'Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
'
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'501':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
/auth/two-factor/registration:
post:
tags:
- 2 FA
summary: Generate a secret
operationId: Two factor register
responses:
'201':
description: OK
content:
application/json:
schema:
additionalProperties: false
properties:
issuer:
type: string
key_id:
type: string
qr_code:
type: string
secret32:
type: string
type: object
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'401':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
'403':
description: Access forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'404':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
'500':
description: 'Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
'
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'501':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
/auth/two-factor/registration/verification:
post:
tags:
- 2 FA
summary: Verify two-factor registration
operationId: Two factor register verification
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
secret32:
type: string
pin_code:
type: string
responses:
'204':
description: OK
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'401':
description: Authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'403':
description: Access forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'404':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
'500':
description: 'Internal server error. Possible `error_code` attribute values:
* `internal_server_error`
'
content:
application/json:
schema:
$ref: '#/components/schemas/error_yaml'
'501':
description: Default response.
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultResponse'
components:
schemas:
DefaultResponse:
properties:
errors:
items:
properties:
message:
type: string
path:
type: string
required:
- message
type: object
type: array
required:
- errors
type: object
error_yaml:
additionalProperties: true
properties:
error:
description: Error message
type: string
error_code:
description: Error code
type: string
type: object