Post-quantum cryptography in 3 steps. Get your API key, sign your first message, verify.
API Base URL
https://pq-api.cyclecore.ai
curl -X POST https://pq-api.cyclecore.ai/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "Your Name",
"terms_accepted": true
}'
Response includes your api_key (shown once) and auto-generated Dilithium3 + Kyber768 key pairs.
curl -X POST https://pq-api.cyclecore.ai/v1/sign \
-H "X-API-Key: pq_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "aGVsbG8gd29ybGQ="}'
All messages are base64-encoded. Response includes signature (base64) and public_key (hex).
curl -X POST https://pq-api.cyclecore.ai/v1/verify \
-H "X-API-Key: pq_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "aGVsbG8gd29ybGQ=",
"signature": "THE_SIGNATURE"
}'
Returns {"valid": true} if the signature is valid.
pip install cyclecore-pq
npm install @cyclecore/pq
from cyclecore_pq import CycleCoreClient
client = CycleCoreClient("pq_live_YOUR_KEY")
# Sign
result = client.sign(b"hello world")
print(result.signature)
# Verify
valid = client.verify(b"hello world", result.signature)
print(valid) # True
# Encrypt
encrypted = client.encrypt(b"sensitive data")
decrypted = client.decrypt(encrypted.ciphertext)
| Endpoint | Description |
|---|---|
| POST /v1/sign | Sign a message (Dilithium3) |
| POST /v1/verify | Verify a signature |
| POST /v1/sign/batch | Sign up to 1,000 messages |
| Endpoint | Description |
|---|---|
| POST /v1/encrypt | Encrypt data (Kyber768 + AES-256-GCM) |
| POST /v1/decrypt | Decrypt data |
| POST /v1/encrypt/batch | Encrypt up to 1,000 plaintexts |
| Endpoint | Description |
|---|---|
| POST /v1/handshake/init | Start post-quantum key exchange |
| POST /v1/handshake/respond | Respond to key exchange |
| POST /v1/handshake/finish | Complete exchange, get shared secret |
| Endpoint | Description |
|---|---|
| POST /v1/attest | Add entry to attestation chain |
| POST /v1/attest/verify | Verify chain integrity |
| POST /v1/attest/export | Export chain for audit |
| Endpoint | Description |
|---|---|
| GET /v1/keys | Get your public keys |
| POST /v1/keys/rotate | Rotate key pairs |
| GET /v1/usage/stats | Usage statistics |
| GET /health | Health check |
Include your API key in every request:
X-API-Key: pq_live_YOUR_KEY
Rate limit headers:
X-RateLimit-LimitX-RateLimit-RemainingX-Usage-Percent| Code | Description |
|---|---|
| 400 | Validation error (bad base64, missing fields) |
| 401 | Invalid or missing API key |
| 429 | Rate limit exceeded (includes Retry-After header) |
Register for a free API key and start signing in under a minute.