Skip to content

Commit bee6e45

Browse files
Ignacio Van Droogenbroeckclaude
andcommitted
fix: rewrite Arc Cloud docs with correct API endpoints
Replace made-up /api/v1/ingest and /api/v1/sql endpoints with real Arc API: - MessagePack (/api/v1/write/msgpack) as primary ingestion - Line protocol (/api/v1/write/line-protocol) for Telegraf/InfluxDB compat - SQL query (/api/v1/query) with JSON and Arrow response formats - Bulk import: CSV, Parquet, InfluxDB line protocol migration New docs: - Integrations guide (Telegraf, InfluxDB clients, OTEL, Vector, MQTT, SDK) - Migration guide (InfluxDB, CSV, Parquet import) Updated: overview pricing, quickstart, all guides, API reference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 28ee33e commit bee6e45

9 files changed

Lines changed: 1184 additions & 571 deletions

File tree

docs-arc-cloud/api-reference/overview.md

Lines changed: 119 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ sidebar_position: 1
44

55
# API Reference
66

7-
Arc Cloud instances expose the same HTTP API as self-hosted Arc. Any Arc client, SDK, or integration that works with Arc will work with Arc Cloud without modification.
7+
Arc Cloud instances expose the full Arc HTTP API. Any Arc client, SDK, or integration that works with Arc will work with Arc Cloud without modification -- including InfluxDB-compatible endpoints.
88

99
## Base URL
1010

@@ -24,65 +24,154 @@ You can find your instance's base URL on the dashboard overview page.
2424

2525
## Authentication
2626

27-
All API requests (except the health check) require a Bearer token in the `Authorization` header:
27+
All API requests (except `/health`) require authentication. Arc Cloud supports multiple authentication methods:
2828

29+
| Method | Header / Param | Example |
30+
|--------|---------------|---------|
31+
| Bearer token (standard) | `Authorization: Bearer TOKEN` | Most clients and SDKs |
32+
| Token prefix (InfluxDB 2.x) | `Authorization: Token TOKEN` | InfluxDB 2.x client libraries |
33+
| API key header | `x-api-key: TOKEN` | Programmatic access |
34+
| Query parameter (InfluxDB 1.x) | `?p=TOKEN` | Legacy InfluxDB 1.x tools |
35+
36+
Generate API tokens from **Settings > API Tokens** in your instance dashboard.
37+
38+
## Key Endpoints
39+
40+
| Endpoint | Method | Purpose |
41+
|----------|--------|---------|
42+
| `/health` | GET | Health check (no auth required) |
43+
| `/api/v1/write/msgpack` | POST | MessagePack ingestion (fastest) |
44+
| `/api/v1/write/line-protocol` | POST | Line protocol ingestion |
45+
| `/write` | POST | InfluxDB 1.x compatible write |
46+
| `/api/v2/write` | POST | InfluxDB 2.x compatible write |
47+
| `/api/v1/query` | POST | SQL query (JSON response) |
48+
| `/api/v1/query/arrow` | POST | SQL query (Arrow response) |
49+
| `/api/v1/import/csv` | POST | CSV bulk import |
50+
| `/api/v1/import/parquet` | POST | Parquet bulk import |
51+
| `/api/v1/import/lp` | POST | Line protocol bulk import |
52+
| `/api/v1/databases` | GET | List databases |
53+
| `/api/v1/measurements` | GET | List measurements |
54+
55+
## Examples
56+
57+
### Health Check
58+
59+
```bash
60+
curl https://abc123.arc.us-east-1.basekick.net/health
2961
```
30-
Authorization: Bearer <token>
62+
63+
### Write Data (Line Protocol)
64+
65+
```bash
66+
curl -X POST https://abc123.arc.us-east-1.basekick.net/api/v1/write/line-protocol \
67+
-H "Authorization: Bearer <token>" \
68+
-H "Content-Type: text/plain" \
69+
-d 'cpu,host=server01 usage=0.64 1711180800000000000
70+
cpu,host=server02 usage=0.38 1711180800000000000'
3171
```
3272

33-
Generate API tokens from the **Settings > API Tokens** section of your instance dashboard.
73+
### Write Data (MessagePack)
3474

35-
## Key Endpoints
75+
MessagePack is the fastest ingestion path. Use the Arc SDK or serialize your data as MessagePack and POST to the endpoint:
3676

37-
| Method | Endpoint | Description | Auth Required |
38-
|--------|----------|-------------|---------------|
39-
| `POST` | `/api/v1/sql` | Execute SQL queries | Yes |
40-
| `POST` | `/api/v1/ingest` | Ingest records | Yes |
41-
| `GET` | `/health` | Health check | No |
42-
| `GET` | `/api/v1/databases` | List databases | Yes |
43-
| `GET` | `/api/v1/databases/:name/tables` | List tables in a database | Yes |
77+
```bash
78+
curl -X POST https://abc123.arc.us-east-1.basekick.net/api/v1/write/msgpack \
79+
-H "Authorization: Bearer <token>" \
80+
-H "Content-Type: application/msgpack" \
81+
--data-binary @data.msgpack
82+
```
83+
84+
### Write Data (InfluxDB 2.x Compatible)
85+
86+
```bash
87+
curl -X POST "https://abc123.arc.us-east-1.basekick.net/api/v2/write?bucket=mydb&precision=ns" \
88+
-H "Authorization: Token <token>" \
89+
-H "Content-Type: text/plain" \
90+
-d 'cpu,host=server01 usage=0.64 1711180800000000000'
91+
```
92+
93+
### Write Data (InfluxDB 1.x Compatible)
94+
95+
```bash
96+
curl -X POST "https://abc123.arc.us-east-1.basekick.net/write?db=mydb&p=<token>" \
97+
-H "Content-Type: text/plain" \
98+
-d 'cpu,host=server01 usage=0.64 1711180800000000000'
99+
```
44100

45-
### Execute SQL
101+
### SQL Query (JSON)
46102

47103
```bash
48-
curl -X POST https://<instance-id>.arc.<region>.basekick.net/api/v1/sql \
104+
curl -X POST https://abc123.arc.us-east-1.basekick.net/api/v1/query \
49105
-H "Authorization: Bearer <token>" \
50106
-H "Content-Type: application/json" \
51-
-d '{"query": "SELECT * FROM analytics.events LIMIT 10"}'
107+
-d '{"q": "SELECT * FROM cpu WHERE host = '\''server01'\'' LIMIT 10"}'
52108
```
53109

54-
### Ingest Records
110+
### SQL Query (Arrow)
111+
112+
For large result sets, the Arrow response format is significantly more efficient:
55113

56114
```bash
57-
curl -X POST https://<instance-id>.arc.<region>.basekick.net/api/v1/ingest \
115+
curl -X POST https://abc123.arc.us-east-1.basekick.net/api/v1/query/arrow \
58116
-H "Authorization: Bearer <token>" \
59117
-H "Content-Type: application/json" \
60-
-d '{
61-
"database": "analytics",
62-
"table": "events",
63-
"records": [
64-
{"timestamp": "2026-03-23T12:00:00Z", "event": "page_view", "page": "/home"}
65-
]
66-
}'
118+
-d '{"q": "SELECT * FROM cpu ORDER BY time DESC LIMIT 1000"}' \
119+
--output results.arrow
120+
```
121+
122+
### List Databases
123+
124+
```bash
125+
curl https://abc123.arc.us-east-1.basekick.net/api/v1/databases \
126+
-H "Authorization: Bearer <token>"
127+
```
128+
129+
### List Measurements
130+
131+
```bash
132+
curl "https://abc123.arc.us-east-1.basekick.net/api/v1/measurements?db=mydb" \
133+
-H "Authorization: Bearer <token>"
134+
```
135+
136+
### Bulk Import (CSV)
137+
138+
```bash
139+
curl -X POST "https://abc123.arc.us-east-1.basekick.net/api/v1/import/csv?db=mydb&measurement=sensors&time_column=timestamp" \
140+
-H "Authorization: Bearer <token>" \
141+
-H "Content-Type: text/csv" \
142+
--data-binary @data.csv
143+
```
144+
145+
### Bulk Import (Parquet)
146+
147+
```bash
148+
curl -X POST "https://abc123.arc.us-east-1.basekick.net/api/v1/import/parquet?db=mydb&measurement=sensors" \
149+
-H "Authorization: Bearer <token>" \
150+
-H "Content-Type: application/octet-stream" \
151+
--data-binary @data.parquet
67152
```
68153

69154
## Response Format
70155

71-
All API responses return JSON with the following structure:
156+
JSON query responses (`/api/v1/query`) return the following structure:
72157

73158
```json
74159
{
75-
"success": true,
76-
"data": [...],
77-
"columns": ["column_name", "column_type"]
160+
"columns": ["time", "host", "usage"],
161+
"types": ["timestamp", "string", "float64"],
162+
"data": [
163+
["2026-03-23T12:00:00Z", "server01", 0.64],
164+
["2026-03-23T12:00:00Z", "server02", 0.38]
165+
],
166+
"row_count": 2,
167+
"execution_time_ms": 3
78168
}
79169
```
80170

81171
On error:
82172

83173
```json
84174
{
85-
"success": false,
86175
"error": "Description of the error"
87176
}
88177
```
@@ -93,6 +182,4 @@ Rate limits vary by tier. When you exceed your tier's ingest rate, the API retur
93182

94183
## Full API Documentation
95184

96-
The Arc Cloud API is identical to the self-hosted Arc API. For complete endpoint documentation, request/response schemas, and advanced usage, see the [Arc API Reference](/arc/api-reference).
97-
98-
Any Arc client or SDK works with Arc Cloud — just point it at your instance's base URL and provide your API token.
185+
For complete endpoint documentation, request/response schemas, and advanced usage, see the [Arc API Reference](/arc/api-reference).

docs-arc-cloud/getting-started/quickstart.md

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,41 +34,62 @@ The admin token is shown **only once** during provisioning. Copy it immediately
3434
Verify your instance is running with a simple query:
3535

3636
```bash
37-
curl -X POST https://<instance-id>.arc.<region>.basekick.net/api/v1/sql \
37+
curl -X POST "https://<your-instance>.arc.us-east-1.basekick.net/api/v1/query" \
3838
-H "Authorization: Bearer <your-token>" \
3939
-H "Content-Type: application/json" \
40-
-d '{"query": "SELECT 1 AS hello"}'
40+
-d '{"sql": "SELECT 1 AS hello", "format": "json"}'
4141
```
4242

4343
You should receive a JSON response with the result `hello: 1`.
4444

4545
## 6. Ingest Data
4646

47-
Send your first records to Arc Cloud:
47+
Send your first records to Arc Cloud using line protocol, the simplest way to write data via `curl`:
4848

4949
```bash
50-
curl -X POST https://<instance-id>.arc.<region>.basekick.net/api/v1/ingest \
50+
curl -X POST "https://<your-instance>.arc.us-east-1.basekick.net/api/v1/write/line-protocol" \
5151
-H "Authorization: Bearer <your-token>" \
52-
-H "Content-Type: application/json" \
53-
-d '{
54-
"database": "my_app",
55-
"records": [
56-
{"timestamp": "2026-03-23T12:00:00Z", "event": "page_view", "user_id": "u123", "page": "/home"}
57-
]
58-
}'
52+
-H "Content-Type: text/plain" \
53+
-H "x-arc-database: default" \
54+
-d 'events,source=web page_view=1,user_id="u123",page="/home" 1711180800000000000'
5955
```
6056

6157
Arc Cloud automatically creates the database and table on first write.
6258

59+
:::tip MessagePack for Production
60+
Line protocol is convenient for quick tests. For production workloads, use the MessagePack endpoint (`POST /api/v1/write/msgpack`) with columnar format for higher throughput and lower overhead. See the [Arc API Reference](/arc/api-reference) for details.
61+
:::
62+
6363
## 7. Query Your Data
6464

6565
Retrieve the data you just ingested:
6666

6767
```bash
68-
curl -X POST https://<instance-id>.arc.<region>.basekick.net/api/v1/sql \
68+
curl -X POST "https://<your-instance>.arc.us-east-1.basekick.net/api/v1/query" \
6969
-H "Authorization: Bearer <your-token>" \
7070
-H "Content-Type: application/json" \
71-
-d '{"query": "SELECT * FROM my_app.events LIMIT 10"}'
71+
-d '{"sql": "SELECT * FROM default.events LIMIT 10", "format": "json"}'
72+
```
73+
74+
## 8. Use the Python SDK
75+
76+
Arc Cloud exposes the same API as Arc OSS, so all Arc clients and SDKs work without modification. Install the Python SDK:
77+
78+
```bash
79+
pip install arc-tsdb-client[all]
80+
```
81+
82+
```python
83+
from arc_tsdb_client import ArcClient
84+
85+
client = ArcClient(
86+
url="https://<your-instance>.arc.us-east-1.basekick.net",
87+
token="<your-token>",
88+
)
89+
90+
# Query
91+
result = client.query("SELECT * FROM default.events LIMIT 10")
92+
print(result)
7293
```
7394

7495
## Next Steps

0 commit comments

Comments
 (0)