Infisical PKI Certificates API
The PKI Certificates API from Infisical — 26 operation(s) for pki certificates.
The PKI Certificates API from Infisical — 26 operation(s) for pki certificates.
openapi: 3.0.3
info:
title: Infisical Admin PKI Certificates API
description: List of all available APIs that can be consumed
version: 0.0.1
servers:
- url: https://us.infisical.com
description: Production server (US)
- url: https://eu.infisical.com
description: Production server (EU)
- url: http://localhost:8080
description: Local server
tags:
- name: PKI Certificates
paths:
/api/v1/projects/{projectId}/certificates/search:
post:
operationId: searchProjectCertificates
tags:
- PKI Certificates
description: Search and filter certificates within a project.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
friendlyName:
type: string
description: The friendly name of the certificate to filter by.
commonName:
type: string
description: The common name of the certificate to filter by.
offset:
type: number
minimum: 0
default: 0
description: The offset to start from. If you enter 10, it will start from the 10th certificate.
limit:
type: number
minimum: 1
maximum: 100
default: 25
description: The number of certificates to return.
forPkiSync:
type: boolean
default: false
description: Retrieve only certificates available for PKI sync.
search:
type: string
description: Search by SAN, CN, certificate ID, or serial number.
status:
type: string
description: Filter by certificate status.
profileIds:
type: array
items:
type: string
format: uuid
description: Filter by certificate profile IDs.
fromDate:
type: string
format: date-time
description: Filter certificates created from this date.
toDate:
type: string
format: date-time
description: Filter certificates created until this date.
metadata:
type: array
items:
type: object
properties:
key:
type: string
minLength: 1
maxLength: 255
value:
type: string
maxLength: 1020
required:
- key
additionalProperties: false
description: Filter by metadata key-value pairs. Each entry should have a key (required) and optionally a value to match against.
extendedKeyUsage:
type: string
description: Filter by extended key usage. Only certificates containing this EKU will be returned (e.g. 'codeSigning', 'serverAuth').
keyAlgorithm:
anyOf:
- type: string
- type: array
items:
type: string
description: Filter by key algorithm (e.g. 'RSA_2048', 'EC_prime256v1').
signatureAlgorithm:
type: string
description: Filter by signature algorithm (e.g. 'RSA-SHA256', 'ECDSA-SHA256').
keySizes:
type: array
items:
type: number
description: Filter by key sizes in bits (e.g. [2048, 4096]).
caIds:
type: array
items:
type: string
format: uuid
description: Filter by certificate authority IDs.
enrollmentTypes:
type: array
items:
type: string
description: Filter by enrollment types (e.g. 'api', 'est', 'acme', 'scep').
source:
anyOf:
- type: string
- type: array
items:
type: string
description: Filter by certificate source ('issued', 'discovered', 'imported').
notAfterFrom:
type: string
format: date-time
description: Filter certificates expiring on or after this date.
notAfterTo:
type: string
format: date-time
description: Filter certificates expiring on or before this date.
notBeforeFrom:
type: string
format: date-time
description: Filter certificates issued on or after this date.
notBeforeTo:
type: string
format: date-time
description: Filter certificates issued on or before this date.
applicationId:
type: string
format: uuid
description: Filter to certificates issued through a specific Application.
applicationIds:
type: array
items:
type: string
format: uuid
description: Filter to certificates issued through any of the supplied Applications.
sortBy:
type: string
enum:
- notAfter
- notBefore
- createdAt
- commonName
- keyAlgorithm
- status
description: Column to sort by (e.g. 'notAfter', 'notBefore', 'commonName').
sortOrder:
type: string
enum:
- asc
- desc
description: 'Sort direction: ''asc'' or ''desc''.'
additionalProperties: false
parameters:
- schema:
type: string
in: path
name: projectId
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
certificates:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
caId:
type: string
format: uuid
nullable: true
status:
type: string
serialNumber:
type: string
friendlyName:
type: string
commonName:
type: string
notBefore:
type: string
format: date-time
notAfter:
type: string
format: date-time
revokedAt:
type: string
format: date-time
nullable: true
revocationReason:
type: number
nullable: true
altNames:
type: string
nullable: true
caCertId:
type: string
format: uuid
nullable: true
certificateTemplateId:
type: string
format: uuid
nullable: true
keyUsages:
type: array
items:
type: string
nullable: true
extendedKeyUsages:
type: array
items:
type: string
nullable: true
projectId:
type: string
pkiSubscriberId:
type: string
format: uuid
nullable: true
profileId:
type: string
format: uuid
nullable: true
renewBeforeDays:
type: number
nullable: true
renewedFromCertificateId:
type: string
format: uuid
nullable: true
renewedByCertificateId:
type: string
format: uuid
nullable: true
renewalError:
type: string
nullable: true
keyAlgorithm:
type: string
nullable: true
signatureAlgorithm:
type: string
nullable: true
subjectOrganization:
type: string
nullable: true
subjectOrganizationalUnit:
type: string
nullable: true
subjectCountry:
type: string
nullable: true
subjectState:
type: string
nullable: true
subjectLocality:
type: string
nullable: true
fingerprintSha256:
type: string
nullable: true
fingerprintSha1:
type: string
nullable: true
isCA:
type: boolean
nullable: true
pathLength:
type: number
nullable: true
source:
type: string
nullable: true
discoveryMetadata:
nullable: true
externalMetadata:
nullable: true
applicationId:
type: string
format: uuid
nullable: true
hasPrivateKey:
type: boolean
caName:
type: string
nullable: true
profileName:
type: string
nullable: true
enrollmentType:
type: string
nullable: true
applicationName:
type: string
nullable: true
required:
- id
- createdAt
- updatedAt
- status
- serialNumber
- friendlyName
- commonName
- notBefore
- notAfter
- projectId
- hasPrivateKey
additionalProperties: false
totalCount:
type: number
required:
- certificates
- totalCount
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 400
message:
type: string
error:
type: string
details: {}
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 401
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 403
message:
type: string
details: {}
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 404
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'422':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 422
message: {}
error:
type: string
required:
- reqId
- statusCode
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 500
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
/api/v1/cert-manager/certificates:
post:
operationId: createCertificate
tags:
- PKI Certificates
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
profileId:
type: string
format: uuid
applicationId:
type: string
format: uuid
csr:
type: string
minLength: 1
maxLength: 4096
attributes:
type: object
properties:
commonName:
type: string
minLength: 1
maxLength: 100
nullable: true
organization:
type: string
minLength: 1
maxLength: 100
nullable: true
organizationalUnit:
type: string
minLength: 1
maxLength: 100
nullable: true
country:
type: string
minLength: 1
maxLength: 100
nullable: true
state:
type: string
minLength: 1
maxLength: 100
nullable: true
locality:
type: string
minLength: 1
maxLength: 100
nullable: true
keyUsages:
type: array
items:
type: string
enum:
- digital_signature
- key_encipherment
- non_repudiation
- data_encipherment
- key_agreement
- key_cert_sign
- crl_sign
- encipher_only
- decipher_only
extendedKeyUsages:
type: array
items:
type: string
enum:
- client_auth
- server_auth
- code_signing
- email_protection
- ocsp_signing
- time_stamping
altNames:
type: array
items:
type: object
properties:
type:
type: string
enum:
- dns_name
- ip_address
- email
- uri
value:
type: string
minLength: 1
required:
- type
- value
additionalProperties: false
signatureAlgorithm:
type: string
enum:
- RSA-SHA256
- RSA-SHA384
- RSA-SHA512
- ECDSA-SHA256
- ECDSA-SHA384
- ECDSA-SHA512
- ML-DSA-44
- ML-DSA-65
- ML-DSA-87
- SLH-DSA-SHA2-128f
- SLH-DSA-SHA2-128s
- SLH-DSA-SHA2-192f
- SLH-DSA-SHA2-192s
- SLH-DSA-SHA2-256f
- SLH-DSA-SHA2-256s
- SLH-DSA-SHAKE-128f
- SLH-DSA-SHAKE-128s
- SLH-DSA-SHAKE-192f
- SLH-DSA-SHAKE-192s
- SLH-DSA-SHAKE-256f
- SLH-DSA-SHAKE-256s
keyAlgorithm:
type: string
enum:
- RSA_2048
- RSA_3072
- RSA_4096
- EC_prime256v1
- EC_secp384r1
- EC_secp521r1
- ML-DSA-44
- ML-DSA-65
- ML-DSA-87
- SLH-DSA-SHA2-128f
- SLH-DSA-SHA2-128s
- SLH-DSA-SHA2-192f
- SLH-DSA-SHA2-192s
- SLH-DSA-SHA2-256f
- SLH-DSA-SHA2-256s
- SLH-DSA-SHAKE-128f
- SLH-DSA-SHAKE-128s
- SLH-DSA-SHAKE-192f
- SLH-DSA-SHAKE-192s
- SLH-DSA-SHAKE-256f
- SLH-DSA-SHAKE-256s
ttl:
type: string
notBefore:
type: string
notAfter:
type: string
basicConstraints:
type: object
properties:
isCA:
type: boolean
pathLength:
type: integer
minimum: 0
required:
- isCA
additionalProperties: false
additionalProperties: false
removeRootsFromChain:
anyOf:
- type: boolean
- type: string
default: false
metadata:
type: array
items:
type: object
properties:
key:
type: string
minLength: 1
maxLength: 255
value:
type: string
maxLength: 1020
default: ''
required:
- key
additionalProperties: false
required:
- profileId
additionalProperties: false
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
certificate:
type: object
properties:
certificate:
type: string
issuingCaCertificate:
type: string
certificateChain:
type: string
privateKey:
type: string
serialNumber:
type: string
certificateId:
type: string
required:
- certificate
- issuingCaCertificate
- certificateChain
- serialNumber
- certificateId
additionalProperties: false
nullable: true
certificateRequestId:
type: string
status:
type: string
enum:
- pending_approval
- pending
- pending_validation
- issued
- failed
- rejected
message:
type: string
required:
- certificate
- certificateRequestId
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 400
message:
type: string
error:
type: string
details: {}
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 401
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'403':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 403
message:
type: string
details: {}
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 404
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
'422':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 422
message: {}
error:
type: string
required:
- reqId
- statusCode
- error
additionalProperties: false
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 500
message:
type: string
error:
type: string
required:
- reqId
- statusCode
- message
- error
additionalProperties: false
/api/v1/cert-manager/certificates/certificate-requests/{requestId}:
get:
operationId: getCertificateRequest
tags:
- PKI Certificates
parameters:
- schema:
type: string
format: uuid
in: path
name: requestId
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- pending_approval
- pending
- pending_validation
- issued
- failed
- rejected
certificate:
type: string
nullable: true
certificateId:
type: string
nullable: true
privateKey:
type: string
nullable: true
serialNumber:
type: string
nullable: true
errorMessage:
type: string
nullable: true
pendingMessage:
type: string
nullable: true
commonName:
type: string
nullable: true
organization:
type: string
nullable: true
organizationalUnit:
type: string
nullable: true
country:
type: string
nullable: true
state:
type: string
nullable: true
locality:
type: string
nullable: true
basicConstraints:
type: object
properties:
isCA:
type: boolean
pathLength:
type: number
required:
- isCA
additionalProperties: false
nullable: true
metadata:
type: array
items:
type: object
properties:
key:
type: string
value:
type: string
required:
- key
- value
additionalProperties: false
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- status
- certificate
- certificateId
- privateKey
- serialNumber
- errorMessage
- createdAt
- updatedAt
additionalProperties: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
reqId:
type: string
statusCode:
type: number
enum:
- 400
message:
type: string
error:
type: string
details: {}
required:
# --- truncated at 32 KB (209 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infisical/refs/heads/main/openapi/infisical-pki-certificates-api-openapi.yml