Skip to content

quikdb/quikdb-notes-sdks

Repository files navigation

Writ (QuikDB Notes) — Official SDKs

Official client libraries for the Writ (QuikDB Notes) REST API. Manage documents, spreadsheets, and folders programmatically from any language.

Quick Start

  1. Get your API key from Integrations in your dashboard
  2. Download the SDK for your language (see below)
  3. Copy the source file(s) into your project
  4. Set your API key as an environment variable: QUIKDB_API_KEY=quikdb_your_key

Available SDKs

Language Directory Dependencies Files
Python python/ None (stdlib only) client.py, models.py
JavaScript / TypeScript javascript/ None (native fetch) client.ts, types.ts
Go go/ None (net/http) quikdbnotes.go
Rust rust/ reqwest, serde client.rs, models.rs
Java java/ None (java.net.http) QuikDBNotes.java, JsonParser.java
C# csharp/ .NET 8 (System.Text.Json) QuikDBNotesClient.cs
Ruby ruby/ None (Net::HTTP) quikdb_notes.rb
PHP php/ None (stream_context) QuikDBNotes.php

Usage Examples

Python

import os
from quikdb_notes import QuikDBNotes

client = QuikDBNotes(os.environ["QUIKDB_API_KEY"])

# Documents
docs = client.documents.list()
doc_id = client.documents.create(title="Meeting Notes", content="# Agenda", format="markdown")
doc = client.documents.get(doc_id)

# Spreadsheets
sid = client.spreadsheets.create(title="Sales Data", sheets=["Q1", "Q2"])
sheets = client.spreadsheets.list_sheets(sid)
client.spreadsheets.write_cells(sid, sheets[0]["id"], "A1:C2", [
    ["Product", "Price", "Qty"],
    ["Widget", 9.99, 100]
])
csv = client.spreadsheets.export_csv(sid)

# Folders
fid = client.folders.create(name="Projects", color="#3b82f6")
contents = client.folders.contents(fid)

JavaScript / TypeScript

import { QuikDBNotes } from './client';

const client = new QuikDBNotes(process.env.QUIKDB_API_KEY!);

// Documents
const { documents } = await client.documents.list();
const id = await client.documents.create({ title: 'Meeting Notes', content: '# Agenda', format: 'markdown' });
const doc = await client.documents.get(id);

// Spreadsheets
const sid = await client.spreadsheets.create({ title: 'Sales Data', sheets: ['Q1', 'Q2'] });
const sheets = await client.spreadsheets.listSheets(sid);
await client.spreadsheets.writeCells(sid, sheets[0].id, 'A1:C2', [
  ['Product', 'Price', 'Qty'],
  ['Widget', 9.99, 100]
]);
const csv = await client.spreadsheets.exportCsv(sid);

// Folders
const fid = await client.folders.create({ name: 'Projects', color: '#3b82f6' });
const contents = await client.folders.contents(fid);

Go

client := quikdbnotes.New(os.Getenv("QUIKDB_API_KEY"))

docs, _ := client.Documents.List(nil)
id, _ := client.Documents.Create(quikdbnotes.CreateDocumentReq{
    Title:  "Meeting Notes",
    Format: "markdown",
})

Rust

let client = QuikDBNotes::new(std::env::var("QUIKDB_API_KEY").unwrap());

let docs = client.documents().list(None).await?;
let id = client.documents().create("Meeting Notes", None, None).await?;

API Reference

Base URL: https://notes.quikdb.com/api/v1

All requests require an API key passed as a Bearer token:

Authorization: Bearer quikdb_your_api_key

Documents

Method Endpoint Description
GET /documents List documents
POST /documents Create document
GET /documents/:id Get document
PUT /documents/:id Update document
DELETE /documents/:id Delete document
GET /documents/:id/content Get raw content
PUT /documents/:id/content Replace content
PATCH /documents/:id/content Append content (Paid)
POST /documents/:id/share Share document (Paid)

Spreadsheets

Method Endpoint Description
GET /spreadsheets List spreadsheets
POST /spreadsheets Create spreadsheet
GET /spreadsheets/:id Get spreadsheet
PUT /spreadsheets/:id Update spreadsheet
DELETE /spreadsheets/:id Delete spreadsheet
GET /spreadsheets/:id/sheets List sheets
POST /spreadsheets/:id/sheets Add sheet
GET /spreadsheets/:id/sheets/:s/cells Read cells
PUT /spreadsheets/:id/sheets/:s/cells Write cells
PATCH /spreadsheets/:id/sheets/:s/cells Patch cells (Paid)
POST /spreadsheets/:id/sheets/:s/append Append rows (Paid)
POST /spreadsheets/:id/sheets/:s/clear Clear cells
GET /spreadsheets/:id/export Export (CSV/JSON)
POST /spreadsheets/:id/import Import (Paid)

Folders

Method Endpoint Description
GET /folders List folders
POST /folders Create folder
GET /folders/:id Get folder
PUT /folders/:id Update folder
DELETE /folders/:id Delete folder
GET /folders/:id/contents Get folder contents

Rate Limits

Tier Requests/min Files/month API Keys
Free 30 5 2
Paid 100 500 Unlimited

See API_TIERS.md for the full free vs paid feature matrix.

Using with AI Tools

Copy-paste this into ChatGPT, Claude, or any AI coding assistant to get working integration code:

I need to integrate with the Writ (QuikDB Notes) API.

Base URL: https://notes.quikdb.com/api/v1
Auth: Bearer token in Authorization header (API key starts with "quikdb_")

Documents: GET/POST /documents, GET/PUT/DELETE /documents/:id, GET/PUT /documents/:id/content
Spreadsheets: GET/POST /spreadsheets, GET/PUT/DELETE /spreadsheets/:id
Sheets: GET/POST /spreadsheets/:id/sheets
Cells: GET/PUT /spreadsheets/:id/sheets/:s/cells (range query param, values[][] body)
Folders: GET/POST /folders, GET/PUT/DELETE /folders/:id, GET /folders/:id/contents

SDKs available at: https://github.com/quikdb/quikdb-notes-sdks

Please write code to [YOUR TASK]. Use my API key from env var QUIKDB_API_KEY.

Full Documentation

See the Guide & Documentation on the Writ website for detailed usage instructions, interactive examples, and per-section AI integration prompts.

License

MIT

About

Official SDKs for the Writ (QuikDB Notes) REST API — Python, JavaScript, Go, Rust, Java, C#, Ruby, PHP

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors