API Documentation

Here you will find documentation for our REST API for managing users, companies and partners.

1. Introduction

The IT-Aware API provides programmatic access to manage users, companies, and partners. The API uses API keys for authentication and requires HTTPS for all requests.

2. Authentication

There are three types of API keys:

Company API Key

Can manage users in a company

Partner API Key

Can manage users and companies under a partner

System Admin API Key

Can manage partners (for system administrators only)

Send the key in request headers:

X-API-Key: sk_...
X-Customer-UUID: {customer_uuid}

Note: System Admin keys only require X-API-Key

3. Base URL

https://itaware.io/en/api/

4. User management

List users

GET /users/

Retrieves a list of all active users for the company or partner.

Access: Company, Partner API Key

Response (200):

[
  {
    "uuid": "a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8",
    "email": "john(a)company.dk",
    "first_name": "John",
    "last_name": "Doe",
    "position": "Developer",
    "department": "IT",
    "is_admin": false,
    "created_at": "2025-12-30T12:34:56Z",
    "is_active": true
  }
]

Create user

POST /users/
Content-Type: application/json

{
    "email": "user(a)company.dk",
  "first_name": "John",
  "last_name": "Doe",
  "position": "Developer",
  "department": "IT",
  "is_admin": false,
  "password": "SecurePassword123!"
}

Creates a new user. For companies, email, first_name, and last_name are required. For partners, only email is required.

Required fields: email, first_name (virksomhed), last_name (virksomhed)

Optional fields: position, department, is_admin, password

Access: Company, Partner API Key

Response (201):

{
  "uuid": "a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8",
    "email": "user(a)company.dk",
  "first_name": "John",
  "last_name": "Doe",
  "position": "Developer",
  "department": "IT",
  "is_admin": false,
  "created_at": "2025-12-30T14:22:15Z",
  "is_active": true,
  "message": "User created successfully"
}

Delete user

DELETE /users/{user_uuid}/delete/

Deactivates a user (soft delete for audit trail).

URL Parameters:

  • user_uuid - UUID på brugeren der skal slettes

Example:

DELETE /users/a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8/delete/

Access: Company, Partner API Key

Response (200):

{
  "message": "User deactivated successfully",
  "uuid": "a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8"
}

5. Corporate governance

Only available for Partner API Keys

List companies

GET /companies/

Retrieves a list of all active companies under the partner.

Access: Partner API Key

Response (200):

[
  {
    "uuid": "f099fe93-4586-4bc8-9de6-1ba5926d3234",
    "name": "Aware Test Company",
    "vat_number": "12345678",
    "address": "Street 1",
    "zipcode": "1234",
    "city": "Copenhagen",
    "country": "DK",
    "contact_name": "John Doe",
    "contact_email": "contact(a)company.dk",
    "contact_phone": "+45 12 34 56 78",
    "created_at": "2025-12-30T10:00:00Z",
    "is_active": true
  }
]

Create a company

POST /companies/
Content-Type: application/json

{
  "name": "Company Name",
  "vat_number": "12345678",
  "address": "Street 1",
  "zipcode": "1234",
  "city": "Copenhagen",
  "country": "DK",
  "contact_name": "John Doe",
    "contact_email": "contact(a)company.dk",
  "contact_phone": "+45 12 34 56 78"
}

Creates a new company under the partner. Only 'name' is required.

Required fields: name

Optional fields: vat_number, address, zipcode, city, country, contact_name, contact_email, contact_phone

Access: Partner API Key

Response (201):

{
  "uuid": "f099fe93-4586-4bc8-9de6-1ba5926d3234",
  "name": "Company Name",
  "vat_number": "12345678",
  "address": "Street 1",
  "zipcode": "1234",
  "city": "Copenhagen",
  "country": "DK",
  "contact_name": "John Doe",
    "contact_email": "contact(a)company.dk",
  "contact_phone": "+45 12 34 56 78",
  "created_at": "2025-12-30T14:30:00Z",
  "is_active": true,
  "message": "Company created successfully"
}

Delete company

DELETE /companies/{company_uuid}/delete/

Deactivates a company.

URL Parameters:

  • company_uuid - UUID på virksomheden der skal slettes

Example:

DELETE /companies/f099fe93-4586-4bc8-9de6-1ba5926d3234/delete/

Access: Partner API Key

Response (200):

{
  "message": "Company deactivated successfully",
  "uuid": "f099fe93-4586-4bc8-9de6-1ba5926d3234"
}

6. Partner management

Only available for System Admin API Keys

List PArtners

GET /partners/

Retrieves list of all active partners.

Access: System Admin API Key

Response (200):

[
  {
    "uuid": "b2c3d4e5-f6a7-4890-b123-c4d5e6f7a8b9",
    "name": "Aware Test Partner",
    "vat_number": "87654321",
    "address": "Street 2",
    "zipcode": "5678",
    "city": "Aarhus",
    "country": "DK",
    "contact_name": "Jane Smith",
    "contact_email": "contact(a)partner.dk",
    "contact_phone": "+45 87 65 43 21",
    "created_at": "2025-12-30T09:00:00Z",
    "is_active": true
  }
]

Create Partner

POST /partners/
Content-Type: application/json

{
  "name": "Partner Name",
  "vat_number": "87654321",
  "address": "Street 2",
  "zipcode": "5678",
  "city": "Aarhus",
  "country": "DK",
  "contact_name": "Jane Smith",
    "contact_email": "contact(a)partner.dk",
  "contact_phone": "+45 87 65 43 21"
}

Creating a new partner. Only 'name' is required.

Required fields: name

Optional fields: vat_number, address, zipcode, city, country, contact_name, contact_email, contact_phone

Access: System Admin API Key

Response (201):

{
  "uuid": "b2c3d4e5-f6a7-4890-b123-c4d5e6f7a8b9",
  "name": "Partner Name",
  "vat_number": "87654321",
  "address": "Street 2",
  "zipcode": "5678",
  "city": "Aarhus",
  "country": "DK",
  "contact_name": "Jane Smith",
    "contact_email": "contact(a)partner.dk",
  "contact_phone": "+45 87 65 43 21",
  "created_at": "2025-12-30T14:35:00Z",
  "is_active": true,
  "message": "Partner created successfully"
}

Delete Partner

DELETE /partners/{partner_uuid}/delete/

Deactivates a partner.

URL Parameters:

  • partner_uuid - UUID på partneren der skal slettes

Example:

DELETE /partners/b2c3d4e5-f6a7-4890-b123-c4d5e6f7a8b9/delete/

Access: System Admin API Key

Response (200):

{
  "message": "Partner deactivated successfully",
  "uuid": "b2c3d4e5-f6a7-4890-b123-c4d5e6f7a8b9"
}

7. Customer information

Retrieve customer information

GET /customer/info/

Returns information about the authenticated customer (Company or Partner).

Access: All API Key types

Response (200):

{
  "uuid": "f099fe93-4586-4bc8-9de6-1ba5926d3234",
  "name": "Aware Test Company",
  "type": "company",
    "email": "firma(a)aware.dk",
  "country": "DK",
  "created_at": "2025-12-30T10:00:00Z"
}

Ping

GET /ping/

Checks if the API is available and the API key is valid.

Access: All API Key types

Response (200):

{
  "message": "pong",
  "timestamp": "2025-12-30T14:45:30Z"
}

8. cURL Exampels

Create user with cURL

curl -X POST https://itaware.io/en/api/users/ \
  -H "X-API-Key: sk_your_api_key_here" \
  -H "X-Customer-UUID: your-company-uuid" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "newuser(a)company.dk",
    "first_name": "John",
    "last_name": "Doe",
    "position": "Developer",
    "department": "IT",
    "is_admin": false,
    "password": "SecurePass123!"
  }'

List companies with cURL

curl https://itaware.io/en/api/companies/ \
  -H "X-API-Key: sk_your_partner_api_key" \
  -H "X-Customer-UUID: your-partner-uuid" \
  -H "Content-Type: application/json"

Delete user with cURL

curl -X DELETE https://itaware.io/en/api/users/a1b2c3d4-e5f6-4789-a012-b3c4d5e6f7a8/delete/ \
  -H "X-API-Key: sk_your_api_key_here" \
  -H "X-Customer-UUID: your-company-uuid"

Create partner with cURL (System Admin)

curl -X POST https://itaware.io/en/api/partners/ \
  -H "X-API-Key: sk_your_system_admin_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "New Partner Name",
    "vat_number": "12345678",
    "address": "Street 1",
    "zipcode": "1234",
    "city": "Copenhagen",
    "country": "DK",
    "contact_name": "Contact Name",
    "contact_email": "contact(a)partner.dk",
    "contact_phone": "+45 12 34 56 78"
  }'

9. Error Handling

The API returns standard HTTP status codes:

200

Successful request

201

Resource created

400

Bad request (validation failed)

401

Unauthorized (missing or invalid API key)

403

Forbidden (access denied)

404

Page not found

500

Server error

10. Rate Limiting

There are no official rate limits, but we reserve the right to implement restrictions to protect the server.

11. Contact & Support

If you have any questions about the API, please feel free to contact us via the contact form on the website.