Overview
Create an asynchronous search job to find relevant clauses, requirements, and specifications across the building code library. The API immediately returns a job ID for tracking the search progress.Asynchronous Operation: This endpoint returns immediately with a job ID. Use the Get Job Status endpoint to poll for results.
Authentication
Bearer token (API key from app.stru.ai)
Request Body
Search query string (1-500 characters)Supports multiple query types:
- Section numbers:
"Section 10.5.3" - Code references:
"AISC 360-16 G2.1" - Technical terms:
"reinforcement requirements" - Natural language:
"What are deflection limits for steel beams?"
Filter by regional design standard (optional)Valid values:
"us"- US standards (AISC, ACI, ASCE)"eurocode"- European codes (EN 1992)"aus-nz"- Australian/NZ (AS codes)"canada"- Canadian codes (CSA)
Search within a specific document only (optional)
Page number for pagination (≥ 1)
Results per page (1-100)
Response
Returns a job object with status “pending” or “in_progress”.Unique job identifier for tracking
Current job status:
"pending" or "in_progress"ISO 8601 timestamp when job was created
Example Requests
Example Response
Status Code:
202 Accepted - Job created and queued for processingError Responses
Invalid request parameters
Missing or invalid API key
Too many requests
Query Types & Examples
Section Number Queries
Section Number Queries
Search for specific code sections.Examples:
"Section 10.5.3""Chapter 9 reinforcement""AISC 360-16 G2.1""Table 4.3-1"
Technical Term Queries
Technical Term Queries
Search using engineering terminology.Examples:
"reinforcement requirements""load combinations""shear strength calculation""moment frame design"
Natural Language Queries
Natural Language Queries
Ask questions in plain English.Examples:
"What are the deflection limits for steel roof beams?""How do I calculate seismic base shear?""What are the reinforcement spacing requirements?"
Table & Figure Queries
Table & Figure Queries
Search for tables and diagrams.Examples:
"load factor table""Figure 6.2 connection details""Table of material properties"
Best Practices
Be specific - More specific queries yield better results. Instead of “steel”, use “steel beam deflection limits”
Filter when possible - Use
design_standard or document_id to reduce noise and improve relevanceStart with semantic search - Let the AI understand your intent, then refine with section numbers if needed
Use pagination - For broad queries, use
per_page to control result count and reduce response sizeHybrid approach: Try a natural language query first, then if you find a relevant section, search for that specific section number to find related clauses.
Rate limits: Stay within 120 requests/minute. Implement exponential backoff when polling for results to avoid rate limit errors.
Next Steps
After creating a search job:1
Poll for Completion
Use Get Job Status to check if the search is complete
2
Retrieve Results
When status is
"completed", the response includes the full search results3
Process Matches
Use the page numbers, snippets, and context to integrate results into your application