Skip to main content

Endpoint Badge

Using the endpoint badge, you can provide content for a badge through a JSON endpoint. The content can be prerendered, or generated on the fly. To strike a balance between responsiveness and bandwidth utilization on one hand, and freshness on the other, cache behavior is configurable, subject to the Shields minimum. The endpoint URL is provided to Shields through the query string. Shields fetches it and formats the badge.

The endpoint badge takes a single required query param: url, which is the URL to your JSON endpoint

Example JSON Endpoint Response

{ "schemaVersion": 1, "label": "hello", "message": "sweet world", "color": "orange" }

Example Shields Response

Schema

PropertyDescription
schemaVersionRequired. Always the number 1.
labelRequired. The left text, or the empty string to omit the left side of the badge. This can be overridden by the query string.
messageRequired. Can't be empty. The right text.
colorDefault: lightgrey. The right color. Supports the eight named colors above, as well as hex, rgb, rgba, hsl, hsla and css named colors. This can be overridden by the query string.
labelColorDefault: grey. The left color. This can be overridden by the query string.
isErrorDefault: false. true to treat this as an error badge. This prevents the user from overriding the color. In the future, it may affect cache behavior.
namedLogoDefault: none. One of the named logos supported by Shields or simple-icons. Can be overridden by the query string.
logoSvgDefault: none. An SVG string containing a custom logo.
logoColorDefault: none. Same meaning as the query string. Can be overridden by the query string. Only works for named logos and Shields logos. If you override the color of a multicolor Shield logo, the corresponding named logo will be used and colored.
logoWidthDefault: none. Same meaning as the query string. Can be overridden by the query string.
logoPositionDefault: none. Same meaning as the query string. Can be overridden by the query string.
styleDefault: flat. The default template to use. Can be overridden by the query string.
Query Parameters
url string REQUIRED

The URL to your JSON endpoint

Example: https://shields.redsparr0w.com/2473/monday
style string

Possible values: [flat, flat-square, plastic, for-the-badge, social]

If not specified, the default style for this badge is "flat".

Example: flat
logo string

One of the named logos (bitcoin, dependabot, gitlab, npm, paypal, serverfault, stackexchange, superuser, telegram, travis) or simple-icons. All simple-icons are referenced using icon slugs. You can click the icon title on simple-icons to copy the slug or they can be found in the slugs.md file in the simple-icons repository. Further info.

Example: appveyor
logoColor string

The color of the logo (hex, rgb, rgba, hsl, hsla and css named colors supported). Supported for named logos and Shields logos but not for custom logos. For multicolor Shields logos, the corresponding named logo will be used and colored.

Example: violet
label string

Override the default left-hand-side text (URL-Encoding needed for spaces or special characters!)

Example: healthiness
labelColor string

Background color of the left part (hex, rgb, rgba, hsl, hsla and css named colors supported).

Example: abcdef
color string

Background color of the right part (hex, rgb, rgba, hsl, hsla and css named colors supported).

Example: fedcba
cacheSeconds string

HTTP cache lifetime (rules are applied to infer a default value on a per-badge basis, any values specified below the default will be ignored).

Example: 3600
link string[]

Specify what clicking on the left/right of a badge should do. Note that this only works when integrating your badge in an <object> HTML tag, but not an <img> tag or a markup language.