Skip to content

Custom API

The customapi widget is the escape hatch: point it at any JSON endpoint and it renders the result. Use it for services that don't have a dedicated widget but do expose JSON.

Configuration

FieldNotes
URLThe JSON endpoint to fetch
Key (optional)Sent as a Bearer token in the Authorization header

How it renders

The backend fetches the URL and shapes the response automatically:

  • Feed - if the response is a JSON array, or an object with an items / messages / notifications / events array, each entry becomes a timeline feed row (the same style as the ntfy widget).
  • Metrics - if it's a flat JSON object, up to four key/value tiles are shown.

Field mappings

For metric output you can define mappings to pick specific (even nested) fields and label them - e.g. map data.cpu.usage → "CPU" with a % suffix. Without mappings, the first few object keys are shown as-is.

Compatibility with Homepage

This mirrors Homepage's customapi widget, so importing a Homepage config brings these across. As a special case, an imported customapi pointing at an ntfy/notifications URL is converted to the native ntfy widget automatically.

Limitations

The Custom API widget currently does a GET with an optional bearer token only - no custom headers, request bodies, or other auth schemes.

Next steps