[{"content":"Prerequisites Before you begin, ensure you have:\nNode.js 18+ (or Python 3.9+, Java 17+) An API key — get one from the dashboard Installation npm install mylib yarn add mylib pip install mylib Configuration Create a client instance with your API key:\nimport { MyLib } from \u0026amp;#39;mylib\u0026amp;#39;; const client = new MyLib({ apiKey: process.env.MYLIB_API_KEY, baseURL: \u0026amp;#39;https://api.example.com/v1\u0026amp;#39;, // …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/articles/getting-started/","section":"V2.3.1","summary":"Install MyLib and make your first API call in under 5 minutes.","tags":["quickstart","install"],"title":"Getting Started"},{"content":"Returns a paginated list of users belonging to your organization. Results are sorted by createdAt descending by default.\nTip Use the limit parameter to control page size. For large organizations, keep the limit below 50 for best performance. ","endpoint":"/api/v1/users","method":"GET","permalink":"/shiori/v2.3.1/api/list-users/","section":"V2.3.1","summary":"Returns a paginated list of all users in the organization.","tags":["users","list"],"title":"List Users"},{"content":"Overview MyLib is designed around three core principles:\nType safety — All public APIs expose rich TypeScript types Zero dependencies — No runtime dependencies beyond the standard library Tree-shakable — Import only what you use Component Diagram ┌────────────────────────────────────────────────┐ │ MyLib Client │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ │ │ Users API │ │ Auth API │ │ …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/design/architecture/","section":"V2.3.1","summary":"High-level overview of MyLib's architecture, components, and design principles.","tags":["architecture","overview"],"title":"System Architecture"},{"content":"Overview MyLib uses Bearer Token authentication via the Authorization HTTP header. All API endpoints require authentication unless stated otherwise.\nObtaining a Token Generate an API token from the developer dashboard:\nNavigate to Settings → API Tokens Click New Token Give it a descriptive name (e.g. production-backend) Select the required scopes (see below) Click Generate and copy the token …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/articles/authentication/","section":"V2.3.1","summary":"How to authenticate API requests using Bearer tokens and manage token scopes.","tags":["auth","security","tokens"],"title":"Authentication"},{"content":"Entities User Represents a human user in the system.\nField Type Description id string Unique identifier. Prefix: usr_. name string Full display name. email string Unique email address. roles string[] Assigned roles. status enum active | suspended | deleted createdAt ISO 8601 Account creation timestamp. updatedAt ISO 8601 Last modification timestamp. interface User { id: string; name: string; …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/design/data-model/","section":"V2.3.1","summary":"Core entities, relationships, and field definitions used across the MyLib API.","tags":["data-model","schema"],"title":"Data Model"},{"content":"Retrieve the full details of a single user identified by {id}.\n","endpoint":"/api/v1/users/{id}","method":"GET","permalink":"/shiori/v2.3.1/api/get-user/","section":"V2.3.1","summary":"Retrieve a single user by their unique ID.","tags":["users","read"],"title":"Get User"},{"content":"Create a new user within your organization. The new user will receive a welcome email (unless sendInvite is set to false).\nNote Email addresses must be unique per organization. If you try to create a user with an existing email, you will receive a 409 Conflict response. ","endpoint":"/api/v1/users","method":"POST","permalink":"/shiori/v2.3.1/api/create-user/","section":"V2.3.1","summary":"Create a new user account in the organization.","tags":["users","write"],"title":"Create User"},{"content":"Error Response Format All API errors return a consistent JSON body:\n{ \u0026amp;#34;error\u0026amp;#34;: { \u0026amp;#34;code\u0026amp;#34;: \u0026amp;#34;USER_NOT_FOUND\u0026amp;#34;, \u0026amp;#34;message\u0026amp;#34;: \u0026amp;#34;No user found with id usr_abc123\u0026amp;#34;, \u0026amp;#34;status\u0026amp;#34;: 404, \u0026amp;#34;requestId\u0026amp;#34;: \u0026amp;#34;req_xyz456\u0026amp;#34; } } Field Type Description code string Machine-readable error code message string Human-readable description status integer HTTP status code …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/articles/error-handling/","section":"V2.3.1","summary":"Understand the error format and how to handle API errors gracefully.","tags":["errors","debugging"],"title":"Error Handling"},{"content":"Updates one or more fields of an existing user. This is a partial update (PATCH semantics) — only the fields included in the request body are modified; omitted fields retain their current values.\nNote To replace a user entirely, use PUT /api/v1/users/{id} (coming in v2). Immutable Fields The following fields cannot be changed after creation:\nid — system-assigned, globally unique createdAt — set at …","endpoint":"/api/v1/users/{id}","method":"PATCH","permalink":"/shiori/v2.3.1/api/update-user/","section":"V2.3.1","summary":"Update an existing user's profile fields.","tags":["users","write"],"title":"Update User"},{"content":"Permanently deletes a user and all their associated resources. This action cannot be undone.\nDanger Deletion is permanent and irreversible. All user data, sessions, and owned resources will be removed. Consider deactivating the user instead if you need to preserve their data. ","endpoint":"/api/v1/users/{id}","method":"DELETE","permalink":"/shiori/v2.3.1/api/delete-user/","section":"V2.3.1","summary":"Permanently delete a user and all their associated data.","tags":["users","delete"],"title":"Delete User"},{"content":"Performs a full-text search across all users in your organization. Results are ranked by relevance score.\nTip Search is case-insensitive and supports partial matches. \u0026amp;quot;ali\u0026amp;quot; will match \u0026amp;quot;Alice\u0026amp;quot;. Relevance Scoring Results include a score field (0–1) indicating match quality. Matches on email are weighted higher than name, which is higher than metadata.\nRate Limiting Search …","endpoint":"/api/v1/users/search","method":"GET","permalink":"/shiori/v2.3.1/api/search-users/","section":"V2.3.1","summary":"Full-text search across users by name, email, or metadata.","tags":["users","list"],"title":"Search Users"},{"content":"v2.3.1 — 2025-06-01 Latest Bug fixes:\nFixed users.list() not respecting the order parameter when sort was omitted Fixed TypeScript type error in client.users.create() when metadata keys contain dots Improved error message when apiKey is an empty string v2.3.0 — 2025-04-15 New features:\nAdded users.search() for full-text search across user profiles Added metadata field support to users.create() and …","endpoint":"","method":"","permalink":"/shiori/v2.3.1/articles/changelog/","section":"V2.3.1","summary":"Release history and migration notes for MyLib.","tags":["changelog","releases"],"title":"Changelog"},{"content":"Architecture Overview MyLib v1.0.0 uses a simple modular architecture.\nCore Modules users - User management auth - Authentication \u0026amp;amp; authorization utils - Utility helpers ","endpoint":"","method":"","permalink":"/shiori/v1.0.0/design/architecture/","section":"V1.0.0","summary":"","tags":[],"title":"Architecture"},{"content":"v1.0.0 - Initial Release Features Basic user management TypeScript support Zero dependencies Improvements in v2.3.1 Better error handling Performance improvements Extended API ","endpoint":"","method":"","permalink":"/shiori/v1.0.0/articles/changelog/","section":"V1.0.0","summary":"","tags":[],"title":"Changelog (v1.0.0)"},{"content":"Description Create a new user.\nRequest Body name (string, required) email (string, required) role (string, optional) Response Returns the created user object.\n","endpoint":"/api/users","method":"POST","permalink":"/shiori/v1.0.0/api/create-user/","section":"V1.0.0","summary":"","tags":[],"title":"Create User"},{"content":"Data Model User Object { \u0026amp;#34;id\u0026amp;#34;: \u0026amp;#34;user123\u0026amp;#34;, \u0026amp;#34;name\u0026amp;#34;: \u0026amp;#34;John Doe\u0026amp;#34;, \u0026amp;#34;email\u0026amp;#34;: \u0026amp;#34;john@example.com\u0026amp;#34;, \u0026amp;#34;role\u0026amp;#34;: \u0026amp;#34;member\u0026amp;#34;, \u0026amp;#34;created_at\u0026amp;#34;: \u0026amp;#34;2024-01-01T00:00:00Z\u0026amp;#34; } ","endpoint":"","method":"","permalink":"/shiori/v1.0.0/design/data-model/","section":"V1.0.0","summary":"","tags":[],"title":"Data Model"},{"content":"Description Retrieve a single user by ID.\nParameters Path Parameters:\nid (string, required) - The user ID Query Parameters:\ninclude (string, optional) - Include related data (profile, permissions) Response Returns a user object with basic information.\nExample curl -X GET https://api.example.com/users/user123 \\ -H \u0026amp;#34;Authorization: Bearer YOUR_TOKEN\u0026amp;#34; ","endpoint":"/api/users/{id}","method":"GET","permalink":"/shiori/v1.0.0/api/get-user/","section":"V1.0.0","summary":"","tags":[],"title":"Get User"},{"content":"Installation v1.0.0 Installation:\nnpm install mylib@1.0.0 Quick Start Basic usage example for MyLib v1.0.0.\nimport { MyLib } from \u0026amp;#39;mylib\u0026amp;#39;; const client = new MyLib({ apiKey: process.env.MYLIB_API_KEY }); const users = await client.users.list(); Next Steps Read the API Reference Check out Design Decisions ","endpoint":"","method":"","permalink":"/shiori/v1.0.0/articles/getting-started/","section":"V1.0.0","summary":"","tags":[],"title":"Getting Started"},{"content":"Description List all users with pagination support.\nParameters limit (integer, optional) - Results per page (default: 20) offset (integer, optional) - Pagination offset (default: 0) Response Returns an array of user objects.\n","endpoint":"/api/users","method":"GET","permalink":"/shiori/v1.0.0/api/list-users/","section":"V1.0.0","summary":"","tags":[],"title":"List Users"}]