Skip to main content

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​

  1. Visit the CTWiseAPI AWS Marketplace listing
  2. Click Subscribe and complete the AWS Marketplace checkout
  3. You'll be redirected to complete your account setup
  4. 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:

  1. Organization Details: Company name, address
  2. Technical Contact: For API-related notifications
  3. Billing Contact: For subscription and usage alerts

Step 2: Get Your API Key​

Locate Your Key​

  1. Log in to app.orchestraprime.ai
  2. Navigate to Settings > API Keys
  3. Your default key is shown (partially masked)
  4. 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​

EndpointPurposeExample Use Case
POST /requirements/searchFind regulatory requirementsResearch endpoint design requirements
GET /patterns/{area}Get amendment patternsIdentify common protocol issues
POST /rules/validateValidate a protocolPre-submission compliance check
GET /prevention/strategiesGet prevention strategiesProtocol 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​

TierCalls/MonthRate Limit
Free1,0002/second
Starter10,00010/second
Pro50,00050/second
EnterpriseUnlimited100/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​

Next Steps​

  1. Explore the API Reference for detailed endpoint documentation
  2. Read Best Practices for production integration tips
  3. Check Best Practices for common use case implementations
  4. Review Rate Limiting to optimize your usage