One API.
Three styles.
Use whichever fits your stack: TypeScript SDK, REST, or GraphQL. Same data, same power, zero lock-in.
import { Forge } from '@forge/sdk' const forge = new Forge({ apiKey: 'fgk_live_...' }) const posts = await forge.content({ type: 'article', locale: 'en', where: { status: 'published' } }) // → typed Article[], TTFB <50ms
GET https://cms.altovar.net/api/v1/content ?type=article&locale=en Authorization: Bearer fgk_live_... X-Project: acme-blog 200 OK { "data": [{ "id": "..." }], "meta": { "total": 42 } }
query Articles($locale: String!) { articleCollection(locale: $locale, limit: 10) { items { title slug author { name } } } }