Getting Started with Q Core
Build, scale, and deploy modern applications with the Q Core platform. This guide covers everything you need to integrate and ship faster.
Introduction
That Is A Q provides a unified platform for modern development teams. Q Core abstracts away infrastructure complexity, giving you a powerful API, real-time sync, and enterprise-grade security out of the box.
Whether you're building a SaaS product, internal tool, or customer-facing app, Q Core scales with your needs from prototype to production.
Installation & Setup
Install the Q Core CLI via your preferred package manager:
npm install -g @thatisaq/core-cli
q init my-project
cd my-project
q dev
Or for existing projects, add the SDK:
npm install @thatisaq/sdk
Authentication
Q Core uses API keys for server-side authentication and JWT tokens for client-side requests. Always keep your secret keys secure and never expose them in client-side code.
Server-Side (Node.js)
import { QClient } from '@thatisaq/sdk';
const q = new QClient({
apiKey: process.env.Q_API_KEY,
environment: 'production'
});
const user = await q.users.create({
email: 'dev@example.com',
role: 'admin'
});
console.log('Created user:', user.id);
Client-Side (Browser)
import { QBrowser } from '@thatisaq/sdk/browser';
const qBrowser = new QBrowser({
projectId: 'proj_8x92k4m',
domain: 'api.thatisaq.com'
});
await qBrowser.auth.signIn({ email, password });
API Endpoints
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. The base URL for all endpoints is:
https://api.thatisaq.com/v2
| Method | Endpoint | Description |
|---|---|---|
GET | /users | List all users with pagination |
POST | /users | Create a new user record |
GET | /users/:id | Retrieve a specific user |
PATCH | /users/:id | Update user attributes |
DELETE | /users/:id | Soft-delete a user |
POST | /webhooks | Register a webhook endpoint |
Error Handling
Q Core uses conventional HTTP response codes to indicate success or failure. Codes in the 2xx range indicate success, 4xx indicate client errors, and 5xx indicate server errors.
429) or transient network issues.
Example error response:
{
"error": {
"code": "invalid_request",
"message": "Missing required field: email",
"details": [
{ "field": "email", "issue": "required" }
]
}
}
Next up: Quickstart Guide →