KKeensafe Developer Portal

Authentication & samples

Every request must carry an Authorization: Bearer <token> header obtained from POST /api/v1/auth/login.

Python example

# keensafe-quickstart.py  (LAB SAMPLE)
import requests

API_BASE = "https://api.keensafeglobalbank.com/v1"
API_KEY  = "ks-pub-FAKE-7d2c0a3b1e8f9c2d3f4a5b6c7d8e9f0a"  # ← fake/lab key

# Get an access token
r = requests.post(
    f"{API_BASE}/auth/login",
    data={"email": "customer1@keensafeglobalbank.com", "password": "Customer123!"},
    headers={"X-Partner-Key": API_KEY},
)
token = r.json()["access_token"]

# Read an account
r = requests.get(f"{API_BASE}/accounts/1", headers={"Authorization": f"Bearer {token}"})
print(r.json())

cURL

curl -s https://api.keensafeglobalbank.com/v1/auth/login \
  -d email=customer1@keensafeglobalbank.com \
  -d password=Customer123! \
  -H "X-Partner-Key: ks-pub-FAKE-7d2c0a3b1e8f9c2d3f4a5b6c7d8e9f0a"

AWS upload helper

# Required if you upload artefacts to our partner bucket.
export AWS_ACCESS_KEY_ID=AKIAFAKEKEYONLY12345
export AWS_SECRET_ACCESS_KEY=FAKEsecret/Lab+OnlyDoNotUseInProductionAA
export AWS_DEFAULT_REGION=eu-west-1
aws s3 cp ./report.csv s3://keensafe-public-assets-eu-west-1/incoming/
Internal-only endpoints (do not call from partner code):
  • https://api-staging.internal.keensafeglobalbank.com/v1/internal/status
  • https://jenkins.internal.keensafeglobalbank.com/job/api-deploy/
  • https://vault.internal.keensafeglobalbank.com/v1/secret/api-keys