Unlock Protocol Locks API
The Locks API from Unlock Protocol — 4 operation(s) for locks.
The Locks API from Unlock Protocol — 4 operation(s) for locks.
openapi: 3.0.0
info:
title: Unlock Locksmith Applications Locks 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: Locks
paths:
/v2/api/{network}/locks/{lockAddress}/keys:
get:
deprecated: true
operationId: keys
security:
- User: []
- Application: []
description: List of lock keys by network with additional metadata if the caller is the lockManager (deprecated, use keys-by-page)
parameters:
- $ref: '#/components/parameters/Network'
- $ref: '#/components/parameters/LockAddress'
- in: query
name: query
required: true
schema:
type: string
description: Query you want to search for.
- in: query
name: filterKey
required: true
schema:
type: string
description: The key you want to search on.
- in: query
name: expiration
schema:
type: string
description: Expiration time
- in: query
name: approval
schema:
type: string
description: Approval status (relevant for offchain approvals on events for example)
- in: query
name: page
schema:
type: integer
description: Page number when paginating
- in: query
name: max
schema:
type: integer
description: Maximum number of items to get by page
responses:
200:
description: List of keys matching the query
content:
application/json:
schema:
nullable: false
type: array
items:
$ref: '#/components/schemas/KeyMetadata'
404:
$ref: '#/components/responses/404.NotFound'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Locks
/v2/api/{network}/locks/{lockAddress}/keys-by-page:
get:
operationId: keysByPage
security:
- User: []
- Application: []
description: List of lock keys by network with additional metadata if the caller is the lockManager
parameters:
- $ref: '#/components/parameters/Network'
- $ref: '#/components/parameters/LockAddress'
- in: query
name: query
required: true
schema:
type: string
description: Query you want to search for.
- in: query
name: filterKey
required: true
schema:
type: string
description: The key you want to search on.
- in: query
name: expiration
schema:
type: string
description: Expiration time
- in: query
name: approval
schema:
type: string
description: Approval status (relevant for offchain approvals on events for example)
- in: query
name: page
schema:
type: integer
description: Page number when paginating
- in: query
name: max
schema:
type: integer
description: Maximum number of items to get by page
responses:
200:
description: List of keys matching the query
content:
application/json:
schema:
nullable: false
type: object
properties:
meta:
type: object
properties:
total:
type: integer
page:
type: integer
byPage:
type: integer
keys:
nullable: false
type: array
items:
$ref: '#/components/schemas/KeyMetadata'
404:
$ref: '#/components/responses/404.NotFound'
500:
$ref: '#/components/responses/500.InternalError'
tags:
- Locks
/v2/api/{network}/locks/{lockAddress}/export-keys:
get:
operationId: exportKeys
security:
- User: []
- Application: []
description: Starts Job process to get all the keys for the given lock
parameters:
- $ref: '#/components/parameters/Network'
- $ref: '#/components/parameters/LockAddress'
- in: query
name: query
required: true
schema:
type: string
description: Query you want to search for.
- in: query
name: filterKey
required: true
schema:
type: string
description: The key you want to search on.
- in: query
name: expiration
schema:
type: string
description: Expiration time
- in: query
name: approval
schema:
type: string
description: Approval status (relevant for offchain approvals on events for example)
responses:
'200':
description: Successfully started Keys Job
content:
application/json:
schema:
type: object
properties:
jobId:
type: string
'401':
description: Unauthorized
'404':
description: Not Found
tags:
- Locks
/v2/api/{network}/locks/{lockAddress}/export-keys/{jobId}:
get:
operationId: getExportedKeys
security:
- User: []
- Application: []
description: Get job result by job id
parameters:
- $ref: '#/components/parameters/Network'
- $ref: '#/components/parameters/LockAddress'
- $ref: '#/components/parameters/JobId'
responses:
'200':
description: Successfully retrieved job result
content:
application/json:
schema:
nullable: false
type: object
properties:
meta:
type: object
properties:
total:
type: integer
page:
type: integer
byPage:
type: integer
keys:
nullable: false
type: array
items:
$ref: '#/components/schemas/KeyMetadata'
'401':
description: Unauthorized
'404':
description: Job not found
tags:
- Locks
components:
responses:
404.NotFound:
description: The item you are making request for does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericNotFound'
500.InternalError:
description: Unable to fullfil request due to internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericServerError'
parameters:
JobId:
in: path
name: jobId
required: true
description: Id of the exported job.
schema:
type: string
Network:
in: path
name: network
required: true
description: Network id.
schema:
type: integer
LockAddress:
in: path
name: lockAddress
required: true
description: Lock address.
schema:
type: string
schemas:
GenericServerError:
type: object
nullable: false
properties:
message:
type: string
default: There was an error in fullfiling the request.
nullable: false
KeyMetadata:
type: object
nullable: false
properties:
token:
type: string
nullable: false
lockName:
type: string
nullable: false
lockAddress:
type: string
nullable: false
expiration:
type: integer
nullable: false
keyHolderAddress:
type: string
nullable: false
GenericNotFound:
type: object
nullable: false
properties:
message:
type: string
default: resource not found
nullable: false
securitySchemes:
User:
type: http
scheme: bearer
bearerFormat: JWT
Application:
type: apiKey
name: api-key
in: query