API Architecture
The Structify API is a RESTful service that provides endpoints for:- Dataset Management: Create and configure dataset schemas
- Entity Operations: Add, update, and query entities (nodes)
- Relationship Management: Connect entities with typed relationships
- Document Processing: Upload and structure unstructured data
- Job Management: Track asynchronous processing tasks
- Search & Query: Natural language and relationship-based search
Core Concepts
Datasets
A dataset is a container for your structured data. Each dataset has:- A unique name
- A schema defining entity types and properties
- Tables for different entity types
- Relationships between entities
Entities
Entities are the records in your dataset. Each entity:- Belongs to a specific table (entity type)
- Has properties defined by the schema
- Can be connected to other entities via relationships
Relationships
Relationships connect entities in your dataset. They:- Have a type (e.g., “Owns”, “Partners With”)
- Can have properties
- Are directional (source → target)
Jobs
Many operations are asynchronous and return a job. Jobs:- Track the progress of long-running operations
- Can be queried for status
- Return results when complete
Authentication
All API requests require authentication via API key:Rate Limits
API requests are rate limited based on your plan:Plan | Requests/min | Concurrent Jobs |
---|---|---|
Free | 60 | 2 |
Pro | 600 | 10 |
Enterprise | Custom | Custom |
Error Handling
The API uses standard HTTP status codes:Pagination
List endpoints support pagination:Async Operations
For better performance, use the async client:WebSocket Events
Real-time updates are available via WebSocket:Best Practices
1
Use Environment Variables
Store API keys in environment variables, never in code
2
Batch Operations
Use batch endpoints when processing multiple items
3
Handle Rate Limits
Implement exponential backoff for rate limit errors
4
Monitor Jobs
Poll job status or use WebSockets for real-time updates
5
Cache Results
Cache frequently accessed data to reduce API calls