Persona Install & Auth
Overview
Set up Persona API authentication. Persona uses Bearer token auth with environment-prefixed API keys (persona_sandbox_* for testing, persona_production_* for live). No SDK required -- direct REST API calls with any HTTP client.
Prerequisites
- Persona account at withpersona.com
- At least one Inquiry Template configured in the Persona Dashboard
- Node.js 18+ or Python 3.9+
Instructions
Step 1: Get API Keys
1. Log into dashboard.withpersona.com
2. Go to Settings > API Keys
3. Copy your sandbox key (starts with persona_sandbox_)
4. For production: copy production key (starts with persona_production_)
Step 2: Configure Environment
# .env — never commit
PERSONA_API_KEY=persona_sandbox_xxxxxxxxxxxxxxxxxxxxxxxx
PERSONA_API_VERSION=2023-01-05
# .gitignore
echo '.env' >> .gitignore
Step 3: Install HTTP Client
set -euo pipefail
# Node.js
npm install axios dotenv
# Python
pip install requests python-dotenv
Step 4: Verify Connection (Node.js)
import axios from 'axios';
const persona = axios.create({
baseURL: 'https://withpersona.com/api/v1',
headers: {
'Authorization': `Bearer ${process.env.PERSONA_API_KEY}`,
'Persona-Version': process.env.PERSONA_API_VERSION || '2023-01-05',
'Content-Type': 'application/json',
},
});
async function verify() {
const { data } = await persona.get('/inquiries?page[size]=1');
console.log(`Connected! Found ${data.data.length} inquiry(ies).`);
}
verify().catch(console.error);
Step 5: Verify Connection (Python)
import os, requests
from dotenv import load_dotenv
load_dotenv()
headers = {
"Authorization": f"Bearer {os.environ['PERSONA_API_KEY']}",
"Persona-Version": os.environ.get("PERSONA_API_VERSION", "2023-01-05"),
}
resp = requests.get("https://withpersona.com/api/v1/inquiries?page[size]=1", headers=headers)
resp.raise_for_status()
print(f"Connected! Status: {resp.status_code}")
Output
- API key configured and verified
- HTTP client set up with correct headers
- Successful test call to Persona API
Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| 401 Unauthorized | Invalid or expired API key | Verify key in Dashboard > Settings > API Keys |
| 403 Forbidden | Key doesn't match environment | Use persona_sandbox_* for testing |
| 400 Missing Persona-Version | Version header not set | Add Persona-Version: 2023-01-05 header |
| Connection refused | Network/firewall issue | Ensure HTTPS to withpersona.com is allowed |
Resources
Next Steps
Create your first inquiry: persona-hello-world