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.
openapi: 3.2.0
info:
title: Rekor Entries API
description: Rekor is a cryptographically secure, immutable transparency log for signed software releases.
version: 1.0.0
servers:
- url: http://rekor.sigstore.dev
tags:
- name: entries
paths:
/api/v1/log/entries:
post:
summary: Creates an entry in the transparency log
description: 'Creates an entry in the transparency log for a detached signature, public key, and content.
'
operationId: createLogEntry
tags:
- entries
responses:
201:
description: Returns the entry created in the transparency log
headers:
ETag:
description: UUID of log entry
schema:
type: string
Location:
description: URI location of log entry
schema:
type: string
format: uri
content:
application/json:
schema:
$ref: '#/components/schemas/LogEntry'
400:
$ref: '#/components/responses/BadContent'
409:
$ref: '#/components/responses/Conflict'
default:
$ref: '#/components/responses/InternalServerError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProposedEntry'
required: true
get:
summary: Retrieves an entry and inclusion proof from the transparency log (if it exists) by index
operationId: getLogEntryByIndex
tags:
- entries
parameters:
- in: query
name: logIndex
required: true
description: specifies the index of the entry in the transparency log to be retrieved
schema:
type: integer
minimum: 0
responses:
200:
description: the entry in the transparency log requested along with an inclusion proof
content:
application/json:
schema:
$ref: '#/components/schemas/LogEntry'
404:
$ref: '#/components/responses/NotFound'
default:
$ref: '#/components/responses/InternalServerError'
/api/v1/log/entries/{entryUUID}:
get:
summary: Get log entry and information required to generate an inclusion proof for the entry in the transparency log
description: Returns the entry, root hash, tree size, and a list of hashes that can be used to calculate proof of an entry being included in the transparency log
operationId: getLogEntryByUUID
tags:
- entries
parameters:
- in: path
name: entryUUID
required: true
description: the UUID of the entry for which the inclusion proof information should be returned
schema:
type: string
pattern: ^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$
responses:
200:
description: Information needed for a client to compute the inclusion proof
content:
application/json:
schema:
$ref: '#/components/schemas/LogEntry'
404:
$ref: '#/components/responses/NotFound'
default:
$ref: '#/components/responses/InternalServerError'
/api/v1/log/entries/retrieve:
post:
summary: Searches transparency log for one or more log entries
operationId: searchLogQuery
tags:
- entries
responses:
200:
description: Returns zero or more entries from the transparency log, according to how many were included in request query
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LogEntry'
400:
$ref: '#/components/responses/BadContent'
422:
$ref: '#/components/responses/UnprocessableEntity'
default:
$ref: '#/components/responses/InternalServerError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchLogQuery'
required: true
components:
schemas:
ProposedEntry:
type: object
discriminator:
propertyName: kind
properties:
kind:
type: string
required:
- kind
SearchLogQuery:
type: object
properties:
entryUUIDs:
type: array
minItems: 1
maxItems: 10
items:
type: string
pattern: ^([0-9a-fA-F]{64}|[0-9a-fA-F]{80})$
logIndexes:
type: array
minItems: 1
maxItems: 10
items:
type: integer
minimum: 0
entries:
type: array
minItems: 1
maxItems: 10
items:
$ref: '#/components/schemas/ProposedEntry'
InclusionProof:
type: object
properties:
logIndex:
type: integer
description: The index of the entry in the transparency log
minimum: 0
rootHash:
description: The hash value stored at the root of the merkle tree at the time the proof was generated
type: string
pattern: ^[0-9a-fA-F]{64}$
treeSize:
type: integer
description: The size of the merkle tree at the time the inclusion proof was generated
minimum: 1
hashes:
description: A list of hashes required to compute the inclusion proof, sorted in order from leaf to root
type: array
items:
type: string
description: SHA256 hash value expressed in hexadecimal format
pattern: ^[0-9a-fA-F]{64}$
checkpoint:
type: string
format: signedCheckpoint
description: The checkpoint (signed tree head) that the inclusion proof is based on
required:
- logIndex
- rootHash
- treeSize
- hashes
- checkpoint
LogEntry:
type: object
additionalProperties:
type: object
properties:
logID:
type: string
pattern: ^[0-9a-fA-F]{64}$
description: This is the SHA256 hash of the DER-encoded public key for the log at the time the entry was included in the log
logIndex:
type: integer
minimum: 0
body:
type: object
additionalProperties: true
integratedTime:
type: integer
description: The time the entry was added to the log as a Unix timestamp in seconds
attestation:
type: object
properties:
data:
format: byte
format: byte
verification:
type: object
properties:
inclusionProof:
$ref: '#/components/schemas/InclusionProof'
signedEntryTimestamp:
type: string
format: byte
description: Signature over the logID, logIndex, body and integratedTime.
required:
- logID
- logIndex
- body
- integratedTime
Error:
type: object
properties:
code:
type: integer
message:
type: string
responses:
UnprocessableEntity:
description: The server understood the request but is unable to process the contained instructions
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InternalServerError:
description: There was an internal error in the server while processing the request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadContent:
description: The content supplied to the server was invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The content requested could not be found
Conflict:
description: The request conflicts with the current state of the transparency log
headers:
Location:
schema:
type: string
format: uri
content:
application/json:
schema:
$ref: '#/components/schemas/Error'