Skip to main content

483 Observations Search

Semantic search across FDA 483 observations using AI-powered natural language queries.

Tier Access

Required Tier: Starter+ (Starter, Pro, Enterprise)

Rate limits apply per tier — see Rate Limits for details.

POST /v1/483/observations/search

Search for FDA 483 observations using natural language. The API uses vector embeddings to find semantically similar observations, enabling you to discover relevant compliance issues based on meaning rather than just keyword matching.

Request

POST https://api.ctwise.ai/v1/483/observations/search
X-Api-Key: YOUR_API_KEY
Content-Type: application/json

Request Body

{
"query": "sterility assurance failure in aseptic processing",
"filters": {
"classification": ["OAI"],
"product_type": "drug",
"date_range": {
"start": "2023-01-01",
"end": "2024-12-31"
},
"program_area": "Drugs",
"cfr_reference": "211.113",
"category": "Aseptic Processing"
},
"top_k": 10,
"include_facility_context": true,
"include_regulatory_mapping": true,
"enable_query_expansion": true
}

Parameters

ParameterTypeRequiredDescription
querystringYesNatural language search query
filtersobjectNoFilter criteria for search results
filters.classificationstring[]NoFilter by inspection classification: NAI, VAI, or OAI
filters.product_typestringNoProduct type: drug, biologics, medical_device, food, etc.
filters.date_rangeobjectNoInspection date range
filters.date_range.startstringNoStart date (ISO 8601 format)
filters.date_range.endstringNoEnd date (ISO 8601 format)
filters.program_areastringNoFDA program area: Drugs, Biologics, Devices, Foods, etc.
filters.cfr_referencestringNoCFR citation (e.g., "211.113")
filters.categorystringNoObservation category (see Categories)
top_kintegerNoMaximum results to return (default: 10, max: 100)
include_facility_contextbooleanNoInclude facility details in results (default: false)
include_regulatory_mappingbooleanNoInclude CFR and category mappings (default: true)
enable_query_expansionbooleanNoEnable 483-specific query expansion (default: true, see Enhanced Search)

Response

{
"query": "sterility assurance failure in aseptic processing",
"results": [
{
"observation_id": "483-2024-001234-obs-003",
"inspection_id": "483-2024-001234",
"fei_number": "3005012345",
"facility_name": "Acme Pharmaceutical Manufacturing",
"city": "Boston",
"state": "MA",
"country": "USA",
"inspection_end_date": "2024-03-15",
"classification": "OAI",
"product_type": "drug",
"program_area": "Drugs",
"act_cfr_number": "21 CFR 211.113",
"short_description": "Sterile manufacturing area lacks adequate environmental monitoring",
"observation_text": "Your firm failed to establish an adequate system for monitoring environmental conditions in aseptic processing areas. Specifically, during the inspection, it was observed that: 1) Viable air sampling was not conducted during aseptic filling operations in Room 203. 2) Surface monitoring in the ISO 5 environment was performed weekly rather than each production day. 3) Trending and investigation of environmental monitoring excursions was inadequate...",
"similarity_score": 0.94,
"relevance": "high",
"confidence_level": 0.91,
"categories": [
"Aseptic Processing",
"Environmental Monitoring",
"Sterility Assurance",
"Process Controls"
],
"severity_score": 8.5,
"facility_context": {
"total_inspections": 8,
"recent_classifications": ["OAI", "VAI", "NAI"],
"warning_letters": 1,
"last_inspection_date": "2024-03-15",
"parent_company": "Acme Holdings Inc."
},
"data_attribution": {
"api_version": "v1.0",
"data_source_name": "FDA ORA Inspection Database",
"data_source_url": "https://datadashboard.fda.gov/ora/cd/inspections.htm",
"last_updated": "2024-09-15T00:00:00Z"
}
},
{
"observation_id": "483-2023-008765-obs-001",
"inspection_id": "483-2023-008765",
"fei_number": "3005067890",
"facility_name": "BioTech Sterile Solutions",
"city": "San Francisco",
"state": "CA",
"country": "USA",
"inspection_end_date": "2023-11-20",
"classification": "OAI",
"product_type": "biologics",
"program_area": "Biologics",
"act_cfr_number": "21 CFR 211.113",
"short_description": "Inadequate aseptic process validation",
"observation_text": "Your firm failed to validate the aseptic filling process for Product X. The media fill validation performed in 2022 did not adequately simulate the commercial filling process, including line speed, fill volume, and container closure system...",
"similarity_score": 0.88,
"relevance": "high",
"confidence_level": 0.85,
"categories": [
"Aseptic Processing",
"Process Validation",
"Sterility Assurance"
],
"severity_score": 8.2,
"facility_context": {
"total_inspections": 5,
"recent_classifications": ["OAI", "VAI"],
"warning_letters": 0,
"last_inspection_date": "2023-11-20",
"parent_company": "BioTech Global Corp."
}
}
],
"query_metadata": {
"execution_time_ms": 1247,
"total_results": 2,
"indexes_searched": ["483-observations-2024", "483-observations-2023"],
"enhanced_pipeline": true,
"enhanced_search": {
"query_expansion_enabled": true,
"expanded_query": "sterility assurance failure in aseptic processing sterile manufacturing contamination",
"abbreviations_found": [],
"synonyms_added": ["sterile manufacturing", "contamination"],
"domain_terms_added": [],
"intent": {
"program_area": "drugs",
"query_type": "analytical",
"cfr_section": null
}
}
}
}

Response Fields

FieldTypeDescription
querystringOriginal search query
resultsarrayArray of matching observations
results[].observation_idstringUnique observation identifier
results[].inspection_idstringParent inspection identifier
results[].fei_numberstringFDA Establishment Identifier
results[].facility_namestringFacility legal name
results[].citystringFacility city
results[].statestringFacility state/province
results[].countrystringFacility country
results[].inspection_end_datestringInspection end date (ISO 8601)
results[].classificationstringInspection classification (NAI/VAI/OAI)
results[].product_typestringProduct type
results[].program_areastringFDA program area
results[].act_cfr_numberstringPrimary CFR regulation cited (21 CFR format)
results[].short_descriptionstringBrief description of observation
results[].observation_textstringFull observation text
results[].similarity_scorenumberSemantic similarity score (0.0-1.0)
results[].relevancestringRelevance level (low/medium/high)
results[].confidence_levelnumberAI confidence score (0.0-1.0)
results[].categoriesstring[]Categorized themes
results[].severity_scorenumberSeverity score (0.0-10.0)
results[].facility_contextobjectFacility inspection history (if requested)
results[].data_attributionobjectData provenance and source information
results[].data_attribution.api_versionstringAPI version used to generate this data
results[].data_attribution.data_source_namestringName of the source database
results[].data_attribution.data_source_urlstringURL to the source database
results[].data_attribution.last_updatedstringLast data refresh timestamp (ISO 8601)
query_metadataobjectQuery execution metadata
query_metadata.execution_time_msintegerProcessing time in milliseconds
query_metadata.total_resultsintegerNumber of results returned
query_metadata.indexes_searchedstring[]Indexes searched
query_metadata.enhanced_pipelinebooleanWhether enhanced AI pipeline was used
query_metadata.enhanced_searchobjectQuery expansion and intent classification details
query_metadata.enhanced_search.query_expansion_enabledbooleanWhether query expansion was active
query_metadata.enhanced_search.expanded_querystring|nullExpanded query used for embedding (null if unchanged)
query_metadata.enhanced_search.abbreviations_foundstring[]Abbreviations expanded (e.g., "CGMP" -> "Current Good Manufacturing Practice")
query_metadata.enhanced_search.synonyms_addedstring[]Synonyms injected from 483-specific synonym groups
query_metadata.enhanced_search.domain_terms_addedstring[]Domain-specific terms added via pattern matching
query_metadata.enhanced_search.intentobjectClassified query intent
query_metadata.enhanced_search.intent.program_areastring|nullAuto-detected FDA program area (drugs, devices, biologics, food)
query_metadata.enhanced_search.intent.query_typestringQuery type (general, analytical, definition, requirements, examples)
query_metadata.enhanced_search.intent.cfr_sectionstring|nullCFR section detected in query

Examples

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 issues with laboratory records",
"top_k": 5
}'

Search with Classification Filter

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": "cleaning validation deficiencies",
"filters": {
"classification": ["OAI"],
"product_type": "drug"
},
"top_k": 10,
"include_facility_context": true
}'

Search with Date Range and Program Area

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": "medical device design control failures",
"filters": {
"date_range": {
"start": "2024-01-01",
"end": "2024-12-31"
},
"program_area": "Devices",
"product_type": "medical_device"
},
"top_k": 20,
"include_regulatory_mapping": true
}'

Python Example

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": "CAPA effectiveness not verified",
"filters": {
"classification": ["OAI", "VAI"],
"date_range": {
"start": "2023-01-01",
"end": "2024-12-31"
}
},
"top_k": 15,
"include_facility_context": True
}
)

data = response.json()
print(f"Found {data['query_metadata']['total_results']} results\n")

for result in data['results']:
print(f"[{result['classification']}] {result['facility_name']}")
print(f" Date: {result['inspection_end_date']}")
print(f" Similarity: {result['similarity_score']:.2f}")
print(f" Description: {result['short_description']}")
print(f" CFR: {result['act_cfr_number']}")
print()

JavaScript Example

const API_KEY = 'your_api_key';
const BASE_URL = 'https://api.ctwise.ai/v1';

const response = await fetch(`${BASE_URL}/483/observations/search`, {
method: 'POST',
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: 'supplier qualification and oversight deficiencies',
filters: {
classification: ['OAI'],
program_area: 'CDER'
},
top_k: 10,
include_facility_context: true,
include_regulatory_mapping: true
})
});

const data = await response.json();
console.log(`Found ${data.query_metadata.total_results} results`);

data.results.forEach(result => {
console.log(`${result.facility_name} (${result.state})`);
console.log(` Severity: ${result.severity_score}/10`);
console.log(` Categories: ${result.categories.join(', ')}`);
});

Error Responses

Missing Query Parameter

{
"error": {
"code": "VALIDATION_ERROR",
"message": "Field 'query' is required"
}
}

Status: 400 Bad Request

Invalid Classification Filter

{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid classification value. Allowed values: NAI, VAI, OAI"
}
}

Status: 400 Bad Request

Invalid API Key

{
"message": "Unauthorized"
}

Status: 401 Unauthorized

Rate Limit Exceeded

{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later.",
"retry_after": 60
}
}

Status: 429 Too Many Requests

Performance

MetricTarget
Response time< 3 seconds
Max results100 per request
Timeout30 seconds

Tips for Better Results

  1. Use natural language - Describe what you're looking for as you would to a colleague
  2. Be specific - Include context like product type, compliance area, or specific deficiency
  3. Combine filters - Use classification + date range + program area for focused results
  4. Request context - Set include_facility_context: true to understand repeat offenders
  5. Adjust top_k - Start with 10-20 results, increase if needed for broader coverage

Enhanced Search Pipeline

The 483 observations search endpoint includes a domain-specific query expansion pipeline that automatically improves search quality. When enable_query_expansion is true (the default), queries go through three enhancement stages before embedding:

Stage 1: Abbreviation Expansion

Common FDA/GMP abbreviations are expanded inline. For example:

QueryExpanded
CGMP violationsCGMP (Current Good Manufacturing Practice) violations
OOS investigationOOS (Out of Specification) investigation
CAPA effectivenessCAPA (Corrective and Preventive Action) effectiveness
API contaminationAPI (Active Pharmaceutical Ingredient) contamination

Over 30 FDA/GMP abbreviations are recognized, including: OAI, VAI, NAI, GMP, CGMP, QSR, HACCP, CDER, CBER, CDRH, SOP, CAPA, OOS, OOT, DMF, BMR, BPR, HVAC, WFI, CIP, SIP, and more.

Stage 2: Synonym Injection

Domain-specific synonyms are added to broaden semantic coverage:

Term FoundSynonyms Added
data integrityaudit trail, electronic records
contaminationcross-contamination, microbial contamination
cleaning validationcleaning verification, residue testing
sterilitysterile, aseptic, sterility assurance
deviationnonconformance, discrepancy
complaintadverse event, product complaint

Stage 3: Domain Pattern Enrichment

Regex patterns detect domain-specific references (CFR citations, GMP parts, 483-specific language) and add contextual terms.

Intent Classification

The search pipeline also classifies query intent to auto-apply filters:

  • Program area detection: Queries mentioning "drug", "tablet", "API" auto-filter to drugs; "device", "implant" to devices; "biologics", "vaccine" to biologics; "food", "dietary" to food
  • CFR section detection: Queries containing CFR references (e.g., "211.68") are tagged for cross-reference enrichment
  • Query type: Classified as general, analytical, definition, requirements, or examples

Disabling Query Expansion

To use the raw query without expansion, set enable_query_expansion to false:

{
"query": "CGMP violations in sterile manufacturing",
"enable_query_expansion": false,
"top_k": 10
}

Observation Categories

Observations are automatically categorized using NLP-based classification. Use the category filter to narrow search results to a specific category.

Available Categories

CategoryDescriptionExample Observations
Data IntegrityAudit trails, electronic records, ALCOA+"Failed to maintain complete data..."
Process ControlsSOPs, batch records, process parameters"Procedures not followed for..."
Quality SystemCAPA, complaints, deviations, change control"Corrective action not effective..."
Laboratory ControlsOOS, OOT, calibration, stability"Laboratory equipment not calibrated..."
Facility & EquipmentHVAC, water systems, cleaning, maintenance"Facility not maintained in clean..."
Production ControlsManufacturing, packaging, labeling"Production records incomplete..."
Sterility AssuranceAseptic processing, environmental monitoring"Sterile area environmental monitoring..."
Material ControlsRaw materials, suppliers, components"Supplier qualification inadequate..."
DocumentationRecords, signatures, retention"Batch records missing signatures..."
Personnel & TrainingTraining, qualifications, hygiene"Personnel not adequately trained..."
Regulatory ComplianceGMP, 21 CFR Part 11, general compliance"Failed to comply with CGMP..."

Example: Filter by Category

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 not calibrated",
"filters": {
"category": "Laboratory Controls"
},
"top_k": 10
}'

KG Intelligence (Cross-Domain)