CIPC Company Registry API
Programmatic access to South African company registrations, director information, filing history, and disqualified director checks via the CIPC registry.
Base URL
Authentication
Include your CIPC API key in the Authorization header as a Bearer token.
curl -H "Authorization: Bearer db_cipc_live_YOUR_KEY" \
https://api.crimate.net/v1/cipc/statsEndpoints
/v1/cipc/companies/{regNumber}Get company details by registration number
Example
GET /v1/cipc/companies/2015/123456/07/v1/cipc/companies/search?q={name}Full-text search companies by name
Example
GET /v1/cipc/companies/search?q=acme&page=1&per_page=20/v1/cipc/companies/{regNumber}/directorsList directors for a company
Example
GET /v1/cipc/companies/2015/123456/07/directors/v1/cipc/companies/{regNumber}/filingsFiling history for a company
Example
GET /v1/cipc/companies/2015/123456/07/filings/v1/cipc/directors/search?q={name}Search directors across all companies
Example
GET /v1/cipc/directors/search?q=john+smith/v1/cipc/directors/disqualified?q={name}Check if a person is a disqualified director
Example
GET /v1/cipc/directors/disqualified?q=john+smith/v1/cipc/statsDataset statistics (total companies, last sync)
Example
GET /v1/cipc/statsResponse Example
Company lookup response:
{
"registration_number": "2015/123456/07",
"name": "ACME TECHNOLOGIES (PTY) LTD",
"trading_name": "ACME TECH",
"type_code": "PTY",
"type_description": "PRIVATE COMPANY",
"status": "IN BUSINESS",
"registration_date": "2015-03-15",
"financial_year_end": 2,
"industry_code": "62010",
"industry_description": "COMPUTER PROGRAMMING",
"address": {
"line1": "123 MAIN ROAD",
"city": "JOHANNESBURG",
"province": "GAUTENG",
"postal_code": "2001",
"country": "ZA"
},
"last_synced_at": "2026-03-07T14:30:00Z"
}Try It
Enter your CIPC API key to make a live request. Generate a key in the dashboard.
Try It
Make a live API call from your browser
curl -H "Authorization: Bearer db_cipc_live_YOUR_KEY" \
"https://crimate.net/v1/cipc/stats"Rate Limits
| Tier | Rate Limit | Daily Quota | Monthly Quota |
|---|---|---|---|
| Free | 10 req/min | 100 | 1,000 |
| Starter | 60 req/min | 5,000 | 50,000 |
| Pro | 300 req/min | Unlimited | 500,000 |
Rate limit headers are included in every response:X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset.
Error Codes
All error responses follow a consistent JSON format:
{
"error": "error_code",
"message": "Human-readable description."
}| Status | Error Code | Description |
|---|---|---|
| 400 | invalid_request | The request body or query parameters are malformed. |
| 401 | unauthorized | Missing or invalid API key. |
| 403 | no_subscription | No active subscription for this API product. |
| 403 | quota_exceeded | Daily or monthly quota exceeded. |
| 404 | not_found | The requested resource does not exist. |
| 429 | rate_limit_exceeded | Too many requests. Check X-RateLimit-Remaining header. |
| 500 | internal_error | An unexpected server error occurred. |