Overview of Elder's API layer and integration interfaces.
Elder provides multiple API interfaces for different use cases:
Full-featured RESTful HTTP API for all Elder functionality.
- Base URL:
http://localhost:5000/api/v1 - Authentication: Bearer tokens, SAML, OAuth2, LDAP
- Format: JSON
- Documentation: OpenAPI 3.0
Key Endpoints:
- Organizations -
/api/v1/organizations - Entities -
/api/v1/entities - Dependencies -
/api/v1/dependencies - Issues -
/api/v1/issues - Graph -
/api/v1/graph
High-performance gRPC API for machine-to-machine communication.
- Protocol: gRPC/Protobuf
- Features: Streaming, type-safe
- License: Enterprise tier only
# List all entities
curl http://localhost:5000/api/v1/entities
# Create an entity
curl -X POST http://localhost:5000/api/v1/entities \
-H "Content-Type: application/json" \
-d '{
"name": "web-server-01",
"entity_type": "compute",
"organization_id": 1,
"attributes": {"ip": "10.0.1.10"}
}'
# Get graph visualization data
curl http://localhost:5000/api/v1/graph/organization/1# Using Bearer token
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:5000/api/v1/entities- ✅ Full CRUD operations for all resources
- ✅ Hierarchical organization management
- ✅ Entity relationship tracking
- ✅ GitHub-style issue management
- ✅ Fine-grained resource roles
- ✅ Type-validated metadata
- ✅ Graph visualization data
- ✅ Pagination for all list endpoints
- ✅ Filtering and search
- ✅ Bulk operations
- ✅ Async operations
- ✅ WebSocket support (coming soon)
- ✅ Rate limiting
- ✅ API versioning
{
"id": 1,
"name": "Example",
"created_at": "2025-10-25T10:00:00Z"
}{
"error": "Entity not found",
"code": 404
}{
"items": [...],
"total": 500,
"page": 1,
"per_page": 50,
"pages": 10
}- Python: Coming soon
- Go: Coming soon
- JavaScript/TypeScript: Coming soon
- Contributions welcome!
| Tier | Limit |
|---|---|
| Community | 100 req/15min |
| Professional | 1000 req/15min |
| Enterprise | Unlimited |
- Current: v1 (
/api/v1) - Stability: Stable
- Deprecation: 6 months notice for breaking changes
- Complete REST API Reference - Full endpoint documentation
- OpenAPI Spec - Machine-readable spec
- gRPC Documentation - gRPC API reference
# Using curl
curl http://localhost:5000/api/v1/healthz
# Using httpie
http GET http://localhost:5000/api/v1/entities
# Using Postman
# Import OpenAPI spec from /api/v1/openapi.json# Start test instance
docker-compose up -d api
# Run API tests
pytest tests/api/- TLS: Required in production
- Authentication: Multiple methods supported
- Authorization: RBAC with resource-level permissions
- Input Validation: All endpoints validate input
- Rate Limiting: Protection against abuse
- Health Check:
/healthz - Metrics:
/metrics(Prometheus format) - Logging: Structured JSON logs
- Documentation: This docs folder
- Issues: GitHub Issues
- Community: GitHub Discussions