EntityEngine API

Build powerful integrations with our REST API and webhooks

The EntityEngine API allows you to programmatically create and manage corporate entities, handle documents, and receive real-time notifications about changes. Whether you're building an internal tool, a customer-facing application, or automating your workflows, our API provides the building blocks you need.

API Key Authentication

Secure your requests with API keys. Create keys with specific scopes to control access.

RESTful API

Clean, predictable REST endpoints for managing entities, persons, documents, and more.

Real-time Webhooks

Get notified instantly when events happen. Signed payloads ensure authenticity.

Rate Limiting

Fair usage limits with clear headers. Automatic retry support in our SDKs.

Secure by Default

HTTPS only. HMAC-SHA256 webhook signatures. Scoped API keys.

Global Jurisdictions

Access entities across multiple jurisdictions from a single API.

Quick Start

1. Get your API key

Log in to your EntityEngine account and navigate to Settings → API Keys to create a new API key. Choose the scopes you need for your integration.

2. Make your first request

All API requests require authentication via the Authorization header:

List your entities
curl -X GET "https://app.entityengine.com/api/v1/entities" \
  -H "Authorization: Bearer sk_live_your_api_key_here"

3. Create an entity

Create a new corporate entity by specifying the jurisdiction and product:

Create an entity
curl -X POST "https://app.entityengine.com/api/v1/entities" \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "jurisdiction_product_id": "jp_abc123",
    "name": "My Company LLC"
  }'

Base URL

All API requests should be made to:

https://app.entityengine.com/api/v1

Response Format

All responses are returned in JSON format with a consistent structure:

Success Response

{
  "success": true,
  "data": {
    "id": "ent_abc123",
    "name": "My Company LLC",
    "status": "pre_incorporation"
  }
}

Paginated Response

{
  "success": true,
  "data": [...],
  "meta": {
    "page": 1,
    "per_page": 20,
    "total": 45,
    "total_pages": 3
  }
}

Error Response

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed",
    "details": {
      "name": "Name is required"
    }
  }
}

Next Steps