{"slug":"your-api","title":"Your own API","summary":"Point the project at an HTTP or GraphQL API you already run. The credential stays on the server; the app does not embed it.","body":"In Connections, open **Backend** and choose your API.\n\n## What to enter\n\n| Field | What to put there |\n| --- | --- |\n| Base URL | The address every endpoint shares, without a trailing slash. It must be reachable from the internet. |\n| Description | One line saying which environment this is. A URL like `https://api.example.com` does not describe itself. |\n| GraphQL URL | Only for a GraphQL backend. |\n| Authentication | An API key header, a bearer token, a username and password, or OAuth2. |\n\nCreate a key scoped to what this app's backend needs. Prefer a service account made for this app over a personal login.\n\nFor OAuth2, register a client whose redirect URI is the callback shown on the form, then paste the client ID, the client secret, and the authorize and token URLs from your provider's docs.\n\n> [!NOTE]\n> Shopify Storefront tokens are public by design and go in the app. Admin tokens, such as those starting with `shpat_`, are refused.\n\n## What the assistant can do\n\nIt can call the API while building the app, to learn its real responses. Requests run with the saved credential on the server. The value is not written into the client bundle and is not repeated in chat.","sectionSlug":"connect","sectionTitle":"Connect services","updatedAt":"2026-09-23T22:51:25.250Z","previous":{"slug":"cloudflare","title":"Cloudflare"},"next":{"slug":"in-app-purchases","title":"In-app purchases"}}