API Overview
The VisiHub API is a RESTful JSON API for managing spreadsheets, users, and collaboration features programmatically.
Base URL
Section titled “Base URL”https://api.visihub.com/v1Authentication
Section titled “Authentication”All API requests require a valid JWT token in the Authorization header:
Authorization: Bearer <token>See the Authentication guide for details on obtaining tokens.
Request format
Section titled “Request format”- All request bodies must be JSON with
Content-Type: application/json(except file uploads which usemultipart/form-data). - Query parameters are used for filtering and pagination.
Response format
Section titled “Response format”All responses return JSON. Successful responses include the requested data:
{ "id": "file_abc123", "name": "quarterly-report.sheet", "created_at": "2026-01-15T10:30:00Z"}Error responses include an error code and message:
{ "error": { "code": "not_found", "message": "The requested file does not exist." }}See Errors for the full list of error codes.
Pagination
Section titled “Pagination”List endpoints return paginated results. Use the page and per_page query parameters:
GET /v1/files?page=2&per_page=25Responses include pagination metadata in the headers:
| Header | Description |
|---|---|
X-Total-Count | Total number of records |
X-Total-Pages | Total number of pages |
X-Page | Current page number |
X-Per-Page | Records per page |
Rate limiting
Section titled “Rate limiting”API requests are rate-limited per account. Current limits are returned in response headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |