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
ctw_) - 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="ctw_your_api_key_here"
# Windows (PowerShell)
$env:CTWISE_API_KEY = "ctw_your_api_key_here"
Step 3: Make Your First API Call
Using cURL
curl -X POST "https://api.ctwise.ai/v1/requirements/search" \
-H "X-Api-Key: $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={
"X-Api-Key": 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: {
'X-Api-Key': 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