Skip to content
Back to skills

Homepage Custom Api Widget

ASecurity

Maps API responses into Homepage customapi widgets, including dynamic-list. Use when configuring those widget mappings.

  • 81 stars
  • 0 votes
  • 1 copy
  • 4 views
  • Added September 8, 2026
toolsgoexpressapi

Works with

  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add edmundmiller/dotfiles --skill homepage-custom-api-widget --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Homepage Custom Api Widget?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Homepage Custom Api Widget
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/edmundmiller-homepage-custom-api-widget/badge)](https://www.skillsdirectory.com/skills/edmundmiller-homepage-custom-api-widget)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: homepage-custom-api-widget
description: Maps API responses into Homepage customapi widgets, including dynamic-list. Use when configuring those widget mappings.
version: 0.1.0
---

# Homepage Custom API Widget

Use this skill to configure Homepage `customapi` widgets from an existing API response. Keep the process narrow: inspect the response shape, map fields once, and validate the YAML you change.

## Core workflow

1. Identify the response shape.
   Capture whether the API returns an object, a root array, or an object containing an array. Treat that shape as the contract that drives the widget config.

2. Choose the display mode.
   Use `block` for scalar fields, `list` for paired rows, and `dynamic-list` for arrays of items.
   - `block` and `list` use `mappings` as an array of mapping objects.
   - `dynamic-list` uses `mappings` as a single object with `items`, `name`, `label`, and optional `limit`, `format`, and `target`.

3. Map fields exactly once.
   Use dot notation for nested object paths. Use array indexes only when the response is stable and the target is intentionally positional. Prefer the root-array form only when the API actually returns an array at the root.

4. Keep transformations local.
   Apply `format`, `remap`, `scale`, `prefix`, `suffix`, and date options on the mapping that needs them. Avoid helper data or extra widget layers when one mapping can express the value.

5. Handle auth and request shape explicitly.
   Set `username`, `password`, `headers`, `method`, and `requestBody` only when the API requires them. Keep secrets in environment variables or secret files; never hard-code tokens into the widget config.

6. Verify the rendered contract.
   Re-read the widget YAML after editing and confirm each mapping still points at a real field in the observed response. If the field shape changes, update the mapping before finishing.

## Mapping rules

- Use `field` for the source path.
- Use `label` for the display name.
- Use `format` only when the rendered type should change.
- Use `additionalField` only in `display: list`.
- Reserve `items`, `name`, `limit`, and `target` for `display: dynamic-list`.
- For arrays at the root, omit `items` and map the root directly.
- For `date` and `relativeDate`, set locale and style only when presentation matters.

## Common shapes

- Single object response: map scalar fields with `display: block`.
- Nested object response: use dot paths such as `origin.name`.
- Array response: use `display: dynamic-list` and bind `name`/`label` to item fields.
- Aggregate count: use `format: size` on an array, string, or object when the count is what matters.

## Good defaults

- Prefer the simplest display mode that fits the response.
- Prefer stable field paths over computed structure.
- Prefer explicit labels that match the dashboard vocabulary.
- Prefer environment-backed secrets over inline values.

## Additional resources

- Upstream widget reference: `https://gethomepage.dev/widgets/services/customapi/`
- Rebuild and inspect the live Homepage config after editing the source file that generates it.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.