Unlock Protocol Auth API
The Auth API from Unlock Protocol — 6 operation(s) for auth.
The Auth API from Unlock Protocol — 6 operation(s) for auth.
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/unlock-protocol-auth-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:
title: Unlock Locksmith Auth API
version: '2'
description: Locksmith provides backend functionality for enabling ticketing, metadata storage, and notification hooks.
license:
name: MIT
servers:
- url: https://locksmith.unlock-protocol.com
description: Production Server
- url: https://staging-locksmith.unlock-protocol.com
description: Staging Server
tags:
- name: Auth
paths:
/v2/auth/nonce:
get:
operationId: nonce
description: Provide a unique nonce for using in sign in with ethereum
parameters: []
responses:
200:
description: Unique nonce.
content:
html/text:
schema:
type: string
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: Nonce
x-summary-source: derived
/v2/auth/login:
post:
operationId: login
description: Login as a user using Sign in with Ethereum message signed by the wallet address.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
message:
type: string
signature:
type: string
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AuthResult'
400:
$ref: '#/components/responses/400.Invalid'
404:
$ref: '#/components/responses/404.NotFound'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: Login
x-summary-source: derived
/v2/auth/privy:
post:
operationId: loginWithPrivy
description: Verify an access token using Privy's library and authenticate the user
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
accessToken:
type: string
description: The Privy access token to verify
walletAddress:
type: string
description: The wallet address from the user
required:
- accessToken
- walletAddress
responses:
200:
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AuthResult'
400:
$ref: '#/components/responses/400.Invalid'
404:
$ref: '#/components/responses/404.NotFound'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: Login with privy
x-summary-source: derived
/v2/auth/logout:
post:
operationId: logout
security:
- User: []
description: Logout from locksmith. This will invalidate all your session tokens.
responses:
200:
$ref: '#/components/responses/200.GenericSuccess'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: Logout
x-summary-source: derived
/v2/auth/revoke:
post:
operationId: revoke
security:
- User: []
description: Invalidate a session.
responses:
200:
$ref: '#/components/responses/200.GenericSuccess'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: Revoke
x-summary-source: derived
/v2/auth/user:
get:
operationId: user
description: Get user details.
security:
- User: []
responses:
200:
description: Return the user details.
content:
application/json:
schema:
$ref: '#/components/schemas/Auth'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Auth
summary: User
x-summary-source: derived
components:
schemas:
GenericInvalidBodyError:
type: object
properties:
message:
type: string
default: Response body schema is invalid.
error:
type:
- string
- 'null'
GenericNotFound:
type: object
properties:
message:
type: string
default: resource not found
GenericServerError:
type: object
properties:
message:
type: string
default: There was an error in fullfiling the request.
GenericSuccess:
type: object
properties:
message:
type: string
default: Successfully fulfilled the request.
AuthResult:
required:
- accessToken
- walletAddress
type: object
properties:
walletAddress:
type:
- string
- 'null'
accessToken:
type: string
Auth:
required:
- walletAddress
type: object
properties:
walletAddress:
type: string
responses:
400.Invalid:
description: Invalid input received. Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericInvalidBodyError'
500.InternalError:
description: Unable to fullfil request due to internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericServerError'
404.NotFound:
description: The item you are making request for does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericNotFound'
200.GenericSuccess:
description: Successfully completed the request.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
securitySchemes:
User:
type: http
scheme: bearer
bearerFormat: JWT
Application:
type: apiKey
name: api-key
in: query