483 Observations Search
Semantic search across FDA 483 observations using AI-powered natural language queries.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language search query |
filters | object | No | Filter criteria for search results |
filters.classification | string[] | No | Filter by inspection classification: NAI, VAI, or OAI |
filters.product_type | string | No | Product type: drug, biologics, medical_device, food, etc. |
filters.date_range | object | No | Inspection date range |
filters.date_range.start | string | No | Start date (ISO 8601 format) |
filters.date_range.end | string | No | End date (ISO 8601 format) |
filters.program_area | string | No | FDA program area: Drugs, Biologics, Devices, Foods, etc. |
filters.cfr_reference | string | No | CFR citation (e.g., "211.113") |
filters.category | string | No | Observation category (see Categories) |
top_k | integer | No | Maximum results to return (default: 10, max: 100) |
include_facility_context | boolean | No | Include facility details in results (default: false) |
include_regulatory_mapping | boolean | No | Include CFR and category mappings (default: true) |
enable_query_expansion | boolean | No | Enable 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
| Field | Type | Description |
|---|---|---|
query | string | Original search query |
results | array | Array of matching observations |
results[].observation_id | string | Unique observation identifier |
results[].inspection_id | string | Parent inspection identifier |
results[].fei_number | string | FDA Establishment Identifier |
results[].facility_name | string | Facility legal name |
results[].city | string | Facility city |
results[].state | string | Facility state/province |
results[].country | string | Facility country |
results[].inspection_end_date | string | Inspection end date (ISO 8601) |
results[].classification | string | Inspection classification (NAI/VAI/OAI) |
results[].product_type | string | Product type |
results[].program_area | string | FDA program area |
results[].act_cfr_number | string | Primary CFR regulation cited (21 CFR format) |
results[].short_description | string | Brief description of observation |
results[].observation_text | string | Full observation text |
results[].similarity_score | number | Semantic similarity score (0.0-1.0) |
results[].relevance | string | Relevance level (low/medium/high) |
results[].confidence_level | number | AI confidence score (0.0-1.0) |
results[].categories | string[] | Categorized themes |
results[].severity_score | number | Severity score (0.0-10.0) |
results[].facility_context | object | Facility inspection history (if requested) |
results[].data_attribution | object | Data provenance and source information |
results[].data_attribution.api_version | string | API version used to generate this data |
results[].data_attribution.data_source_name | string | Name of the source database |
results[].data_attribution.data_source_url | string | URL to the source database |
results[].data_attribution.last_updated | string | Last data refresh timestamp (ISO 8601) |
query_metadata | object | Query execution metadata |
query_metadata.execution_time_ms | integer | Processing time in milliseconds |
query_metadata.total_results | integer | Number of results returned |
query_metadata.indexes_searched | string[] | Indexes searched |
query_metadata.enhanced_pipeline | boolean | Whether enhanced AI pipeline was used |
query_metadata.enhanced_search | object | Query expansion and intent classification details |
query_metadata.enhanced_search.query_expansion_enabled | boolean | Whether query expansion was active |
query_metadata.enhanced_search.expanded_query | string|null | Expanded query used for embedding (null if unchanged) |
query_metadata.enhanced_search.abbreviations_found | string[] | Abbreviations expanded (e.g., "CGMP" -> "Current Good Manufacturing Practice") |
query_metadata.enhanced_search.synonyms_added | string[] | Synonyms injected from 483-specific synonym groups |
query_metadata.enhanced_search.domain_terms_added | string[] | Domain-specific terms added via pattern matching |
query_metadata.enhanced_search.intent | object | Classified query intent |
query_metadata.enhanced_search.intent.program_area | string|null | Auto-detected FDA program area (drugs, devices, biologics, food) |
query_metadata.enhanced_search.intent.query_type | string | Query type (general, analytical, definition, requirements, examples) |
query_metadata.enhanced_search.intent.cfr_section | string|null | CFR section detected in query |
Examples
Basic Search
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
| Metric | Target |
|---|---|
| Response time | < 3 seconds |
| Max results | 100 per request |
| Timeout | 30 seconds |
Tips for Better Results
- Use natural language - Describe what you're looking for as you would to a colleague
- Be specific - Include context like product type, compliance area, or specific deficiency
- Combine filters - Use classification + date range + program area for focused results
- Request context - Set
include_facility_context: trueto understand repeat offenders - 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:
| Query | Expanded |
|---|---|
CGMP violations | CGMP (Current Good Manufacturing Practice) violations |
OOS investigation | OOS (Out of Specification) investigation |
CAPA effectiveness | CAPA (Corrective and Preventive Action) effectiveness |
API contamination | API (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 Found | Synonyms Added |
|---|---|
| data integrity | audit trail, electronic records |
| contamination | cross-contamination, microbial contamination |
| cleaning validation | cleaning verification, residue testing |
| sterility | sterile, aseptic, sterility assurance |
| deviation | nonconformance, discrepancy |
| complaint | adverse 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" todevices; "biologics", "vaccine" tobiologics; "food", "dietary" tofood - 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, orexamples
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
| Category | Description | Example Observations |
|---|---|---|
Data Integrity | Audit trails, electronic records, ALCOA+ | "Failed to maintain complete data..." |
Process Controls | SOPs, batch records, process parameters | "Procedures not followed for..." |
Quality System | CAPA, complaints, deviations, change control | "Corrective action not effective..." |
Laboratory Controls | OOS, OOT, calibration, stability | "Laboratory equipment not calibrated..." |
Facility & Equipment | HVAC, water systems, cleaning, maintenance | "Facility not maintained in clean..." |
Production Controls | Manufacturing, packaging, labeling | "Production records incomplete..." |
Sterility Assurance | Aseptic processing, environmental monitoring | "Sterile area environmental monitoring..." |
Material Controls | Raw materials, suppliers, components | "Supplier qualification inadequate..." |
Documentation | Records, signatures, retention | "Batch records missing signatures..." |
Personnel & Training | Training, qualifications, hygiene | "Personnel not adequately trained..." |
Regulatory Compliance | GMP, 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
}'
Related Endpoints
- GET /v1/483/facilities/{fei_number} - Facility inspection history
- GET /v1/483/citations/trending - Trending citations
- GET /v1/483/regulatory-mapping - CFR-to-ICH E6(R3) mappings
- POST /v1/483/watchlist - Monitor facilities
KG Intelligence (Cross-Domain)
- POST /v1/intelligence/classify - Classify an observation into event types and CFR sections
- POST /v1/intelligence/investigate - Deep investigation with evidence chain for any observation
- GET /v1/intelligence/regulations/{cfr} - Look up full CFR regulation text for cited sections
- Platform Intelligence Overview - How 483 data connects to the broader intelligence platform