--- title: Hep.gg Uploader JavaScript SDK (LLM) description: Upload files and shorten URLs from Node/TypeScript via the hepgg package. --- # Hep.gg Uploader SDK (hepgg package) Typed Node/TypeScript client for the Uploader. Subpath: `hepgg/uploader`. Part of the unified `hepgg` package. Node 20+. ## Install npm install hepgg --registry https://npm.hep.gg ## Construct import { Uploader } from "hepgg/uploader"; const up = new Uploader({ token, baseURL?, serveHost?, authScheme?, timeoutMs?, retries?, fetch? }); token string required. hyd-up- token. baseURL string optional. Default https://hep.gg. Endpoint: POST /upload. serveHost string optional. Default https://i.hep.gg. Used by urlFor(id). authScheme "raw"|"bearer" optional. Default "raw" (Authorization: ). The upload page documents raw; the shortener page documents Bearer. ## Methods up.upload(data, { filename?, contentType? }) -> { ID, url } data: Blob | File | Buffer | Uint8Array | ArrayBuffer. Sent as multipart/form-data under the "file" field. filename drives the stored extension (default "upload"). up.shorten(link) -> { ID, url } link sent as the "link" form field. up.urlFor(id) -> string builds serveHost + "/" + id. Response: { ID, url }. ID includes extension where applicable. Always use url. ## Errors Non-2xx throws HepError { status, code, service: "uploader", message, body }. Common: 401 bad token, 403 maintenance/too-large/access-required, 400 MIME/parse. Uploads are never retried after a server response. ## Part of the hepgg package Also provides: hepgg/id, hepgg/sms, hepgg/email, hepgg/paste, hepgg/secrets, hepgg/ai, hepgg/login, hepgg/logger (logger docs: https://docs.teamhydra.dev/docs/logger/getting-started). Full uploader reference: /llms/uploader/uploading, /llms/uploader/url-shortener.