> ## Documentation Index
> Fetch the complete documentation index at: https://docs.s4kit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference

> S4Kit Admin API documentation

## Overview

The S4Kit Admin API provides programmatic access to manage your S4Kit resources. Use it to automate system configuration, manage API keys, and query logs.

<Info>
  Most users interact with S4Kit through the [SDK](/sdk/installation) for SAP operations and the [Dashboard](https://app.s4kit.com) for configuration. The Admin API is for advanced automation use cases.
</Info>

## Base URL

```
https://api.s4kit.com/admin
```

## Authentication

All Admin API requests require authentication using a session token from the dashboard or an admin API key.

```bash theme={null}
curl https://api.s4kit.com/admin/systems \
  -H "Authorization: Bearer <your-token>"
```

## Response Format

All responses are JSON with consistent structure:

### Success Response

```json theme={null}
{
  "data": { ... },
  "meta": {
    "requestId": "req_abc123"
  }
}
```

### Error Response

```json theme={null}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "System not found",
    "requestId": "req_abc123"
  }
}
```

## Rate Limiting

Admin API requests are rate limited:

| Limit      | Value           |
| ---------- | --------------- |
| Per minute | 100 requests    |
| Per day    | 10,000 requests |

Rate limit headers:

```
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640000000
```

## Common Endpoints

### Systems

| Method | Endpoint             | Description      |
| ------ | -------------------- | ---------------- |
| GET    | `/admin/systems`     | List all systems |
| POST   | `/admin/systems`     | Create a system  |
| GET    | `/admin/systems/:id` | Get a system     |
| PATCH  | `/admin/systems/:id` | Update a system  |
| DELETE | `/admin/systems/:id` | Delete a system  |

### Instances

| Method | Endpoint                       | Description     |
| ------ | ------------------------------ | --------------- |
| GET    | `/admin/systems/:id/instances` | List instances  |
| POST   | `/admin/systems/:id/instances` | Create instance |
| GET    | `/admin/instances/:id`         | Get an instance |
| PATCH  | `/admin/instances/:id`         | Update instance |
| DELETE | `/admin/instances/:id`         | Delete instance |

### API Keys

| Method | Endpoint              | Description         |
| ------ | --------------------- | ------------------- |
| GET    | `/admin/api-keys`     | List API keys       |
| POST   | `/admin/api-keys`     | Create API key      |
| GET    | `/admin/api-keys/:id` | Get API key details |
| PATCH  | `/admin/api-keys/:id` | Update API key      |
| DELETE | `/admin/api-keys/:id` | Revoke API key      |

### Logs

| Method | Endpoint          | Description        |
| ------ | ----------------- | ------------------ |
| GET    | `/admin/logs`     | Query request logs |
| GET    | `/admin/logs/:id` | Get log details    |

## OpenAPI Specification

The complete API specification is available below. You can import this into tools like Postman or use it to generate client libraries.

<Card title="S4Kit Admin API OpenAPI Spec" icon="file-code" href="/api-reference/openapi.json">
  View the OpenAPI 3.1 specification
</Card>

## SDKs

Currently, the Admin API is best accessed via HTTP requests. Official SDKs for the Admin API are planned for future releases.

```typescript theme={null}
// Example using fetch
const response = await fetch('https://api.s4kit.com/admin/systems', {
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  }
});

const { data: systems } = await response.json();
```
