Getting Started with CTWiseAPI
This guide walks you through setting up CTWiseAPI and making your first API calls.
Overview​
CTWiseAPI provides access to regulatory intelligence for clinical trial protocol development. With our API, you can:
- Search regulatory requirements across FDA, ICH, EMA, and WHO
- Analyze historical amendment patterns to prevent costly protocol changes
- Validate protocols against current regulatory guidance
- Get prevention strategies based on industry best practices
Step 1: Create Your Account​
Via AWS Marketplace​
- Visit the CTWiseAPI AWS Marketplace listing
- Click Subscribe and complete the AWS Marketplace checkout
- You'll be redirected to complete your account setup
- Enter your organization details and agree to terms of service
After subscription, you'll receive:
- Your API key (starts with
ctwise_sk_) - Access to the CTWise Dashboard
- Email confirmation with getting started resources
Account Setup​
Complete your profile in the OrchestraPrime Dashboard:
- Organization Details: Company name, address
- Technical Contact: For API-related notifications
- Billing Contact: For subscription and usage alerts
Step 2: Get Your API Key​
Locate Your Key​
- Log in to app.orchestraprime.ai
- Navigate to Settings > API Keys
- Your default key is shown (partially masked)
- Click Reveal to see the full key
Key Security Best Practices​
warning
Your API key is a secret. Never expose it in client-side code or public repositories.
- Store keys in environment variables or secret managers
- Use separate keys for development and production
- Rotate keys periodically
- Monitor key usage in the dashboard
Environment Setup​
# Linux/macOS
export CTWISE_API_KEY="ctwise_sk_live_your_key_here"
# Windows (PowerShell)
$env:CTWISE_API_KEY = "ctwise_sk_live_your_key_here"
Step 3: Make Your First API Call​
Using cURL​
curl -X POST "https://api.ctwise.ai/v1/requirements/search" \
-H "Authorization: Bearer $CTWISE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"search_criteria": {
"therapeutic_area": "Oncology",
"phase": "III"
},
"max_results": 5
}'
Using Python​
import os
import requests
API_KEY = os.getenv("CTWISE_API_KEY")
BASE_URL = "https://api.ctwise.ai/v1"
response = requests.post(
f"{BASE_URL}/requirements/search",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"search_criteria": {
"therapeutic_area": "Oncology",
"phase": "III"
},
"max_results": 5
}
)
data = response.json()
print(f"Found {data['total_count']} requirements")
for req in data['requirements']:
print(f"- [{req['authority']}] {req['title']}")
Using JavaScript​
const API_KEY = process.env.CTWISE_API_KEY;
const BASE_URL = 'https://api.ctwise.ai/v1';
const response = await fetch(`${BASE_URL}/requirements/search`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
search_criteria: {
therapeutic_area: 'Oncology',
phase: 'III',
},
max_results: 5,
}),
});
const data = await response.json();
console.log(`Found ${data.total_count} requirements`);
Step 4: Install an SDK (Optional)​
For easier development, use our official SDKs:
Python​
pip install ctwise
from ctwise import CTWiseClient
client = CTWiseClient() # Uses CTWISE_API_KEY env var
results = client.requirements.search(
therapeutic_area="Oncology",
phase="III"
)
for req in results.requirements:
print(f"- [{req.authority}] {req.title}")
JavaScript/TypeScript​
npm install @ctwise/sdk
import { CTWiseClient } from '@ctwise/sdk';
const client = new CTWiseClient(); // Uses CTWISE_API_KEY env var
const results = await client.requirements.search({
therapeuticArea: 'Oncology',
phase: 'III',
});
results.requirements.forEach(req => {
console.log(`- [${req.authority}] ${req.title}`);
});
Step 5: Explore the API​
Key Endpoints​
| Endpoint | Purpose | Example Use Case |
|---|---|---|
POST /requirements/search | Find regulatory requirements | Research endpoint design requirements |
GET /patterns/{area} | Get amendment patterns | Identify common protocol issues |
POST /rules/validate | Validate a protocol | Pre-submission compliance check |
GET /prevention/strategies | Get prevention strategies | Protocol optimization |
Example Workflows​
Protocol Design Research​
# 1. Search for endpoint requirements
endpoint_reqs = client.requirements.search(
therapeutic_area="Oncology",
requirement_types=["endpoint_definition"],
phase="III"
)
# 2. Check amendment patterns
patterns = client.patterns.get(
therapeutic_area="Oncology",
phase="III"
)
# 3. Get prevention strategies
strategies = client.prevention.get_strategies(
therapeutic_area="Oncology"
)
Pre-Submission Validation​
# Validate your protocol
validation = client.rules.validate(
protocol={
"title": "Your Study Title",
"therapeutic_area": "Oncology",
"phase": "III",
# ... protocol details
}
)
print(f"Compliance Score: {validation.compliance_score}%")
for issue in validation.issues:
if issue.severity == "critical":
print(f"CRITICAL: {issue.title}")
Step 6: Monitor Your Usage​
Dashboard Metrics​
Visit app.orchestraprime.ai/ctwise/usage to view:
- API Calls: Current period usage vs. limit
- Response Times: Average latency
- Error Rates: Failed request percentage
- Popular Endpoints: Most-used API endpoints
Usage Alerts​
Configure alerts in Settings > Notifications:
- 80% Threshold: Early warning
- 90% Threshold: Upgrade recommendation
- 100% Threshold: Rate limiting active
Rate Limits​
| Tier | Calls/Month | Rate Limit |
|---|---|---|
| Free | 1,000 | 2/second |
| Starter | 10,000 | 10/second |
| Pro | 50,000 | 50/second |
| Enterprise | Unlimited | 100/second |
Troubleshooting​
Common Issues​
401 Unauthorized​
{"error": {"code": "UNAUTHORIZED", "message": "Invalid API key"}}
Solution: Check that your API key is correct and not expired.
429 Too Many Requests​
{"error": {"code": "RATE_LIMITED", "message": "Rate limit exceeded"}}
Solution: Reduce request frequency or upgrade your tier.
403 Forbidden​
{"error": {"code": "INSUFFICIENT_TIER", "message": "Feature requires Starter tier"}}
Solution: Upgrade to access this feature.
Getting Help​
- Documentation: docs.ctwise.ai
- API Status: status.ctwise.ai
- Support: support@ctwise.ai
- GitHub Issues: Report SDK bugs
Next Steps​
- Explore the API Reference for detailed endpoint documentation
- Read Best Practices for production integration tips
- Check Best Practices for common use case implementations
- Review Rate Limiting to optimize your usage