Introduction

One integration to incorporate a company in any supported jurisdiction.

The GetStarted API forms companies. You send the details of the company and the people behind it, and GetStarted files the incorporation, runs the checks, and hands back the registered entity with its documents and identifiers.

You integrate once. Singapore, the United Arab Emirates, the United Kingdom and Delaware all go through the same endpoints, and Switzerland and Malaysia are next. What differs between jurisdictions is described by the API itself: each jurisdiction and company type publishes a requirements schema, and your forms are rendered from it. Adding a country to your product means reading a new schema, not writing a new integration.

Base URL

Every request goes to:

HTTP
https://api.getstarted.ae/v1

Requests and responses are JSON, except file uploads, which are multipart/form-data. Authenticate with a secret key in the Authorization header. See Authentication.

Make a request

Create a customer, the account on your platform that incorporations belong to:

cURL
curl https://api.getstarted.ae/v1/customers \
  -H "Authorization: Bearer gs_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Labs",
    "email": "ops@northwindlabs.com",
    "externalReference": "acct_48213",
    "metadata": { "plan": "growth" }
  }'
JSON
{
  "id": "cus_01J9ZK4R7Q2M8X",
  "object": "customer",
  "name": "Northwind Labs",
  "email": "ops@northwindlabs.com",
  "externalReference": "acct_48213",
  "metadata": { "plan": "growth" },
  "livemode": false,
  "createdAt": "2026-09-20T08:14:22Z"
}

A gs_test_ key works in the sandbox, where nothing is ever filed. Build against it until the whole flow works end to end.

The shape of a flow

  1. Create a customer with POST/customers.
  2. Pick a jurisdiction and company type from GET/incorporations/catalog.
  3. Fetch the form contract for that pair with GET/incorporations/requirements.
  4. Open a draft with POST/incorporations.
  5. Save company-level answers with PATCH/incorporations/{incorporationId}/intake.
  6. Create the people and companies involved, then attach them to the draft as participants with roles such as DIRECTOR and SHAREHOLDER.
  7. Upload files and attach them to each participant's document slots.
  8. Call GET/incorporations/{incorporationId}/validation until isComplete is true.
  9. Submit with POST/incorporations/{incorporationId}/submit.
  10. Follow progress through webhooks. When the company exists, the incorporation points at a business entity holding its registration number, certificate and identifiers.

Where to go next