API Documentation

Public REST API for Irish company formation. JSON over HTTPS. No auth for read endpoints, magic link session for write endpoints.

Base URL

https://getirishcompany.com/api

Authentication

Most read endpoints are public. Write endpoints (profile, journey, reminders, sign) require a session cookie obtained via magic link:

POST /api/auth/magic-link
Content-Type: application/json

{"email": "[email protected]"}

Click the link in the email → cookie gic_session set for 30 days.

Public endpoints

Wizard recommendation

POST /api/wizard
{
  "resident": "non_eea",
  "businessType": "saas",
  "founders": 2,
  "needVat": true,
  "needPayroll": false,
  "needIrishBank": true
}

Country advisor

POST /api/advisor
{
  "businessType": "saas",
  "resident": "non_eea",
  "needEuAccess": true,
  "needStripe": true,
  "estimatedTurnover": 180000,
  "retainProfits": false
}

Name check

POST /api/name-check
{"name": "MyStartup Tech Ltd"}

CRO database search

GET /api/cro-search?q=MyStartup

Provider recommender

POST /api/recommend
{
  "kind": "bank",
  "resident": "non_eea",
  "businessType": "saas",
  "turnover": 180000
}

kind: bank | office | phone | secretary

Cost calculator

POST /api/cost-calculator
{
  "resident": "non_eea",
  "founders": 2,
  "needVirtualOffice": true,
  "needAccountant": true,
  "city": "dublin",
  "plan": "premium"
}

Rejection Fixer (text)

POST /api/rejection-fix
{
  "rejectionText": "Dear Applicant, your Form A1...",
  "plan": "premium"
}

Rejection Fixer (image upload)

POST /api/rejection-fix-upload
Content-Type: multipart/form-data

file: 
plan: premium

Public status

GET /api/status

Authenticated endpoints

Require gic_session cookie.

Embed signing widget

Embed the e-signature flow in your own site as an iframe:

<iframe src="https://getirishcompany.com/embed/sign/<TOKEN>"
        width="100%" height="700"
        frameborder="0">
</iframe>

Rate limits

60 requests per minute per IP for public endpoints. Higher limits on request — email [email protected].

Webhook (Stripe)

POST /api/webhook/stripe
Stripe-Signature: t=...,v1=...

{Stripe event JSON}

Future: customer-defined webhooks for sign events.

Examples

Quick check a name + get advisor verdict:

curl -X POST https://getirishcompany.com/api/name-check \
  -H "Content-Type: application/json" \
  -d '{"name":"MyStartup Tech Ltd"}'

curl -X POST https://getirishcompany.com/api/advisor \
  -H "Content-Type: application/json" \
  -d '{"businessType":"saas","resident":"non_eea","needEuAccess":true,"needStripe":true}'

Build with us

Free for personal use. Email [email protected] for partnership or higher rate limits.