483 Intelligence Quickstart
Get started with FDA 483 Inspection Intelligence in 5 minutes. Search citation records, look up facility profiles, check risk scores, and explore CFR references.
Prerequisites
- A CTWise API key (Get one here)
- A REST API client (curl, Python, or JavaScript)
483 Intelligence uses the same API key and base URL as CTWise regulatory rules. No additional setup required.
1. Search FDA 483 Observations
Find citation records using natural language -- CTWise uses Amazon Titan v2 embeddings to understand the meaning of your query.
Using cURL
curl -X POST https://api.ctwise.ai/v1/483/observations/search \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "data integrity failures in sterile manufacturing",
"top_k": 5
}'
Using Python
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.ctwise.ai/v1"
response = requests.post(
f"{BASE_URL}/483/observations/search",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"query": "data integrity failures in sterile manufacturing",
"top_k": 5
}
)
data = response.json()
for obs in data["results"]:
print(f"{obs['legal_name']} ({obs['fei_number']})")
print(f" CFR: {obs['act_cfr_number']}")
print(f" {obs['short_description'][:100]}...")
print(f" Similarity: {obs['similarity_score']:.2f} (confidence: {obs['confidence_level']:.2f})")
print()
Using JavaScript
const response = await fetch('https://api.ctwise.ai/v1/483/observations/search', {
method: 'POST',
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: 'data integrity failures in sterile manufacturing',
top_k: 5
})
});
const data = await response.json();
data.results.forEach(obs => {
console.log(`${obs.legal_name} (${obs.fei_number})`);
console.log(` CFR: ${obs.act_cfr_number}`);
console.log(` Similarity: ${obs.similarity_score.toFixed(2)} (confidence: ${obs.confidence_level.toFixed(2)})`);
});
Example Response
{
"query": "data integrity failures in sterile manufacturing",
"total": 5,
"results": [
{
"citation_id": "CIT-2024-12345",
"inspection_id": "INS-2024-67890",
"fei_number": "3016004437",
"legal_name": "PharmaCorp Manufacturing Inc.",
"city": "Cherry Hill",
"state": "NJ",
"act_cfr_number": "21 CFR 211.68",
"short_description": "Automatic, mechanical, and electronic equipment is not routinely calibrated...",
"inspection_end_date": "2024-08-15",
"fiscal_year": 2024,
"program_area": "Human Drugs",
"similarity_score": 0.89,
"confidence_level": 0.91
}
],
"query_metadata": {
"execution_time_ms": 450,
"index": "483-citations"
}
}
Confidence level: Numeric score from 0.0 to 1.0, where higher values indicate greater confidence in the semantic match
2. Look Up a Facility Profile
Get a facility's inspection profile by FEI number, including classification breakdown and risk assessment.
curl "https://api.ctwise.ai/v1/483/facilities/3016004437" \
-H "X-Api-Key: YOUR_API_KEY"
response = requests.get(
f"{BASE_URL}/483/facilities/3016004437",
headers={"X-Api-Key": API_KEY}
)
facility = response.json()
print(f"Facility: {facility['legal_name']}")
print(f"Total inspections: {facility['total_inspections']}")
print(f"Classifications: OAI={facility['classification_breakdown']['oai_count']}, "
f"VAI={facility['classification_breakdown']['vai_count']}, "
f"NAI={facility['classification_breakdown']['nai_count']}")
print(f"Risk: {facility['risk_assessment']['risk_score']} ({facility['risk_assessment']['risk_level']})")
You can also get the facility's citation history:
curl "https://api.ctwise.ai/v1/483/facilities/3016004437/citations?limit=10" \
-H "X-Api-Key: YOUR_API_KEY"
3. Check a Facility's Risk Score
Get a composite risk score (0-100) with a 5-factor breakdown (v2.0 methodology).
curl "https://api.ctwise.ai/v1/483/risk-scores/3005012345" \
-H "X-Api-Key: YOUR_API_KEY"
response = requests.get(
f"{BASE_URL}/483/risk-scores/3005012345",
headers={"X-Api-Key": API_KEY}
)
score = response.json()
print(f"Risk Score: {score['risk_score']}/100 ({score['risk_level']})")
print(f"Methodology: {score['methodology_version']}")
print(f"\nFactor Breakdown:")
for name, value in score["factors"].items():
desc = score["factor_descriptions"].get(name, "")
print(f" {name}: {value:.1f} - {desc}")
Example Response
{
"fei_number": "3005012345",
"risk_score": 42.5,
"risk_level": "medium",
"methodology_version": "v2.0",
"factors": {
"oai_ratio": 16.0,
"citation_frequency": 8.5,
"recency": 9.0,
"severity": 4.5,
"peer_benchmark": 4.5
},
"methodology": "Composite score [0,100] = oai_ratio(40%) + citation_frequency(25%) + recency(15%) + severity(10%) + peer_benchmark(10%). Risk levels: low (<25), medium (25-50), high (50-75), critical (>=75).",
"factor_descriptions": {
"oai_ratio": "Weighted classification ratio (OAI=1.0, VAI=0.5, NAI=0.1)",
"citation_frequency": "Citation frequency normalized by years of inspection history",
"recency": "Exponential recency decay (half-life = 2 years)",
"severity": "Weighted severity of CFR violations cited",
"peer_benchmark": "Comparison to product-type peer group average"
},
"query_metadata": {
"execution_time_ms": 85
}
}
Risk levels: low (<25), medium (25-50), high (50-75), critical (>=75)
4. Browse CFR References
See which 21 CFR sections are most frequently cited in FDA 483 observations.
curl "https://api.ctwise.ai/v1/483/cfr-references?sort_order=desc&limit=5" \
-H "X-Api-Key: YOUR_API_KEY"
response = requests.get(
f"{BASE_URL}/483/cfr-references",
headers={"X-Api-Key": API_KEY},
params={"sort_order": "desc", "limit": 5}
)
data = response.json()
print(f"Total CFR references: {data['total']}\n")
for cfr in data["results"]:
print(f"{cfr['act_cfr_number']}: {cfr['occurrence_count']} citations")
print(f" {cfr['short_description']}")
Get detail for a specific CFR, including cross-references to CTWise regulatory rules:
curl "https://api.ctwise.ai/v1/483/cfr-references/21%20CFR%20211.68?cfr=21%20CFR%20211.68" \
-H "X-Api-Key: YOUR_API_KEY"
5. Get the Analytics Summary
View aggregate statistics across all 483 datasets.
curl "https://api.ctwise.ai/v1/483/analytics/summary" \
-H "X-Api-Key: YOUR_API_KEY"
response = requests.get(
f"{BASE_URL}/483/analytics/summary",
headers={"X-Api-Key": API_KEY}
)
summary = response.json()
print(f"Total citations: {summary['total_citations']}")
print(f"Total facilities: {summary['total_facilities']}")
print(f"Total CFR references: {summary['total_cfr_references']}")
print(f"\nRisk distribution:")
for level, count in summary["risk_distribution"].items():
print(f" {level}: {count}")
print(f"\nTop cited CFRs:")
for cfr in summary["top_cited_cfr"][:5]:
print(f" {cfr['act_cfr_number']}: {cfr['occurrence_count']} citations")
6. Explore Regulatory Mappings (ICH E6(R3))
See how CFR sections cited in 483 observations map to ICH E6(R3) Good Clinical Practice requirements.
# List CFR sections that have ICH E6(R3) mappings
curl "https://api.ctwise.ai/v1/483/regulatory-mapping?has_mappings=true&limit=5" \
-H "X-Api-Key: YOUR_API_KEY"
# Get ICH E6(R3) mappings for a specific CFR section
response = requests.get(
f"{BASE_URL}/483/regulatory-mapping/21 CFR 211.68",
headers={"X-Api-Key": API_KEY}
)
mapping = response.json()
print(f"CFR: {mapping['cfr_section']}")
print(f"Title: {mapping['cfr_title']}")
print(f"483 Citations: {mapping['occurrence_count']}")
print(f"\nICH E6(R3) Mappings:")
for ich in mapping["ich_mappings"]:
print(f" {ich['ich_section']}: {ich['matched_requirement'][:80]}...")
print(f" Relevance: {ich['relevance_score']:.2f}")
Example Response
{
"cfr_section": "21 CFR 211.68",
"cfr_title": "Automatic, mechanical, and electronic equipment calibration",
"occurrence_count": 1247,
"ich_mappings": [
{
"ich_section": "E6(R3) 6.5.3",
"matched_requirement": "Computerized systems used in clinical trials should be validated for their intended use",
"relevance_score": 0.82,
"mapping_rationale": "Equipment calibration requirements parallel ICH E6(R3) computerized system validation"
}
],
"cfr_reference_url": "https://www.ecfr.gov/current/title-21/chapter-I/part-211",
"query_metadata": { "execution_time_ms": 42 }
}
7. Search with Category Filters
Filter 483 observations by compliance category using NLP-based classification.
curl -X POST "https://api.ctwise.ai/v1/483/observations/search" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "equipment calibration",
"filters": {
"category": "Laboratory Controls"
},
"top_k": 5
}'
Available categories: Data Integrity, Process Controls, Quality System, Laboratory Controls, Facility & Equipment, Production Controls, Sterility Assurance, Material Controls, Documentation, Personnel & Training, Regulatory Compliance.
8. Track Investigators
Get details about FDA investigators who conduct 483 inspections.
curl "https://api.ctwise.ai/v1/483/investigators?limit=10" \
-H "X-Api-Key: YOUR_API_KEY"
# Get most active investigators
response = requests.get(
f"{BASE_URL}/483/investigators",
headers={"X-Api-Key": API_KEY},
params={"sort_order": "desc", "limit": 10}
)
investigators = response.json()
for inv in investigators["results"]:
print(f"ID: {inv['investigator_id']}")
print(f" Name: {inv['investigator_name']}")
print(f" Inspections: {inv['inspection_count']}")
print(f" Avg Citations: {inv['avg_citations_per_inspection']:.1f}")
print()
9. Discover Trending Citations
Find CFR sections with increasing or decreasing citation frequency over time.
curl "https://api.ctwise.ai/v1/483/citations/trending?days=365&limit=10" \
-H "X-Api-Key: YOUR_API_KEY"
# Get trending citations (last 365 days)
response = requests.get(
f"{BASE_URL}/483/citations/trending",
headers={"X-Api-Key": API_KEY},
params={"days": 365, "limit": 10}
)
trending = response.json()
print(f"Trending citations over the last {trending['days']} days:\n")
for item in trending["results"]:
print(f"{item['act_cfr_number']}")
print(f" Description: {item['description']}")
print(f" Recent: {item['recent_count']} citations")
print(f" Previous: {item['previous_count']} citations")
print(f" Trend: {item['trend_direction']} ({item['trend_percentage']:+.1f}%)")
print()
10. Compare Against Benchmarks
See how facility risk scores compare to peer groups by product type.
curl "https://api.ctwise.ai/v1/483/analytics/benchmarks?product_type=drug" \
-H "X-Api-Key: YOUR_API_KEY"
# Get benchmarks for drug manufacturers
response = requests.get(
f"{BASE_URL}/483/analytics/benchmarks",
headers={"X-Api-Key": API_KEY},
params={"product_type": "drug"}
)
benchmarks = response.json()
print(f"Product Type: {benchmarks['product_type']}")
print(f"Facility Count: {benchmarks['facility_count']}")
print(f"\nRisk Score Statistics:")
print(f" Mean: {benchmarks['risk_score_stats']['mean']:.1f}")
print(f" Median: {benchmarks['risk_score_stats']['median']:.1f}")
print(f" 75th Percentile: {benchmarks['risk_score_stats']['p75']:.1f}")
print(f" 90th Percentile: {benchmarks['risk_score_stats']['p90']:.1f}")
print(f"\nClassification Distribution:")
for classification, count in benchmarks['classification_distribution'].items():
print(f" {classification}: {count}")
11. Monitor Facilities with Watchlist
Create a watchlist to track facilities of interest and receive updates.
# Add a facility to your watchlist
curl -X POST "https://api.ctwise.ai/v1/483/watchlist" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fei_number": "3016004437",
"notes": "Key supplier - monitor for OAI classifications",
"alert_on_new_inspection": true
}'
# Add facility to watchlist
response = requests.post(
f"{BASE_URL}/483/watchlist",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"fei_number": "3016004437",
"notes": "Key supplier - monitor for OAI classifications",
"alert_on_new_inspection": True
}
)
watchlist_entry = response.json()
print(f"Added to watchlist: {watchlist_entry['watchlist_id']}")
# Get your watchlist
response = requests.get(
f"{BASE_URL}/483/watchlist",
headers={"X-Api-Key": API_KEY}
)
watchlist = response.json()
print(f"\nWatchlist ({watchlist['total']} facilities):")
for entry in watchlist["results"]:
print(f" {entry['facility_name']} (FEI: {entry['fei_number']})")
print(f" Risk: {entry['current_risk_score']:.1f}/100")
print(f" Notes: {entry['notes']}")
What's Next?
- 483 Intelligence Concepts -- Understand the data model and scoring methodology
- Risk Scoring Guide -- Deep dive into risk score components
- 483 Search Tutorial -- Advanced search techniques and filters
- 483 Regulatory Mapping -- CFR-to-ICH E6(R3) cross-references
- API Reference -- Complete endpoint documentation