Custom Connections

A saved URL that Glance fetches on a schedule. An RSS feed or a JSON API. Not a new widget, and not an OAuth account.

Use this when the data lives at a URL you can name. If ChatGPT, Claude, or Cursor already holds the data, push it with ingest instead. Glance does not become a general HTTP client: one GET, an optional key header, and a field map.

Who can create one

Pro and Power. A Free account that taps Add gets the paywall and does not save a row. The refresh interval is the one the plan already allows, so Power stays the faster plan. A downgrade to Free stops the fetching. The connection, the automation, and the last content stay. Glance calls the URL again when the account is Pro or Power.

One connection can feed more than one widget. In a single pass Glance fetches that URL once and reuses the result. People who follow a public widget see the content Glance already saved. They never receive the URL, the header name, or the key.

Where it lives

  1. Open Settings → Connected Services.
  2. Under Custom connections, tap Add.
  3. Name it, choose RSS or JSON, and paste the URL.
  4. Leave the key blank for a public feed. For a private API, enter the header name and paste the key.
  5. Attach it to a widget with an automation, or ask Glance AI to do that.

A saved key is not shown again. Replacing it means pasting a new value. Removing it clears the stored key. Deleting the connection leaves widgets on their last content. They stop updating from that URL.

RSS or JSON

Kind is the file shape. RSS is XML, including Atom. JSON is a JSON document. Either one may be public, and either one may need a key.

KindWhat Glance reads
rssFixed slots: feed_title, feed_link, then item_1_title, item_1_link, item_1_date, item_1_summary, and item_1_image when the story has a picture. The same names repeat for further items. How many items is itemLimit, from 1 to 10, default 5.
jsonPaths you choose, such as current.temp_c or items.0.title. Each value has to be text, a number, or a boolean. An object or an array is not a widget field.

A story picture is kept only when its URL is https. The phone downloads that image. An http picture is skipped. The feed address itself may still be http when there is no key.

The key

No key means Glance fetches the URL as given. A key means Glance sends it as one request header. You choose the header name, such as X-Api-Key or Authorization, and you paste the full header value. Glance does not add a Bearer prefix.

  • A row that has a key must use https, so the key is not sent in clear text.
  • Glance AI and a connected agent can save the URL and the header name. They cannot submit or read the key. A key in the chat, in the URL (user:pass@host), or in a query parameter such as api_key, token, or secret is rejected.
  • When a row still needs a key, the agent sends you an app link that opens that row. Paste the key, come back, and say when that is done.

What Glance will fetch

  • Public http and https URLs only.
  • Loopback, private networks, link-local, and cloud-metadata addresses are refused. Redirects are checked the same way.
  • The response is capped at 256 KB and 10 seconds. A failed fetch keeps the last good content.

Ask an agent

Glance AI in the app and public MCP can both create the connection. Call get_plan first. If custom_connections is false, do not create one. A host Plus or Pro plan is not Glance Pro.

  • No key. The agent saves the URL, previews the real fields, builds the layout from those fields, and attaches an automation with a schedule. Glance starts fetching.
  • A key is required. The agent saves the row with the header name and stops. It does not design the widget yet. You paste the key in Connected Services. A status read then says needs_key or ready, and never the key. Once it is ready, a preview returns a short sample and the agent maps the fields.

RSS maps a binding name to a slot id, the same shape GitHub and Calendar use. An empty map fills bindings whose names already match slot ids. JSON maps a binding name to a path from the preview. Creating the automation checks those paths. A widget label used as the path fails, and the error tells the agent to copy the preview path.