Create a Shields.io Badge for a Freshping uptime Check, like the one above.
This is a free alternative to the official Freshping badges, which are theoretically available after reviewing Freshping and filling out a support request/survey. It's also pretty and uniform looking because it uses Shields.io instead of some ugly one-off design.
- Log in to your existing Freshping account.
- β Freshworks disabled the ability to sign up for new Freshping accounts in 2023, so if you don't already have an account, you can't create one anymore.
- Go to your Freshping Dashboard.
- Decide which Check you want to appear in your Badge, and go to its Report page.
- From the Report page URL, copy the Check ID number from the
check_id
query parameter. - Add the Check to a Status Page.
- If this Check is already in at least one Status Page, you can skip this step.
- If there are no Status Pages in your Freshping account, first create a new Status Page.
- This step is necessary to allow the Check's status and uptime to be accessed through Freshping's API.
If you want to use my hosted FreshBadge server instance, skip to the Shields.io steps. Otherwise, you can run a FreshBadge server yourself.
- Download the latest release for your operating system and CPU.
- Extract the ZIP file to a directory on your computer.
- Ensure the Web Server (IIS) role (
Web-Server
) is installed. - Ensure the ASP.NET Core Hosting Bundle 8 or later is installed.
- Log in to your server using IIS Manager.
- In Application Pools, create a new Application Pool (CLR 4).
- Don't use
DefaultAppPool
or any other non-empty pools, because ASP.NET Core webapps must each run isolated in their own pool.
- Don't use
- In your Site, add a new Application (View Applications βΊ Add Application).
- The Alias is the URL path prefix (context root) of the app that should appear in the base URL, such as
freshbadge
. - Choose the Application Pool you created above.
- Set the Physical Path to the directory you extracted the FreshBadge release into, which contains
FreshBadge.dll
.
- The Alias is the URL path prefix (context root) of the app that should appear in the base URL, such as
- Configure listening ports, TLS certificates, and other settings in
appsettings.json
. - Execute the
FreshBadge
program.
https://west.aldaviva.com/freshbadge/{checkId}
where {checkId}
is the ID of the Freshping Check you want to monitor, for example,
https://west.aldaviva.com/freshbadge/304333
- For self-hosted FreshBadge instances, replace the base URL
https://west.aldaviva.com/freshbadge/
with your own server's base URL. - See the API documentation for additional parameters that can customize the Badge.
https://img.shields.io/endpoint?url={badgeJson}
for example
https://img.shields.io/endpoint?url=https%3A%2F%2Fwest.aldaviva.com%2Ffreshbadge%2F304333
- Like all URI path segments, the
{badgeJson}
parameter value must be URI-encoded. - The right side of the Badge's background color is green when the uptime is at least 99.5%, transitioning to orange as the uptime decreases in the Fibonacchi sequence to 91%. When the uptime is lower or the check is down, the background color is red.
- You can customize the Badge appearance using the Endpoint Badge query parameters:
https://img.shields.io/endpoint?url=https%3A%2F%2Fwest.aldaviva.com%2Ffreshbadge%2F304333&label=uptime+(90+days)&color=informational

[](https://statuspage.freshping.io/61473-Aldaviva)
- URL template:
https://west.aldaviva.com/freshbadge/{checkId}{?period,precision,locale}
- Verb:
GET
- Parameters
checkId
- importance: required
- location: path
- type: number (64-bit signed integer)
- meaning: numeric ID of the Freshping Check to show uptime for, as seen in the
check_id
query parameter of the Freshping report page for this Check (/reports?check_id={checkId}
)
period
- importance: optional
- location: query
- type: string
- format: ISO 8601 time period
- meaning: period over which to calculate the Check's uptime percentage, ending at the current time
- range: [1 minute, 90 days]
- default: 90 days
- example:
?period=P30D
(30 days)
precision
- importance: optional
- location: query
- type: number (8-bit unsigned integer)
- meaning: how many digits after the decimal point the uptime percentage should show
- range: [0, 256)
- default: 4 (the finest Freshping check granularity is 1 minute, and the longest data retention is 90 days, which means 4 digits after the decimal point will always be precise enough to express even the shortest outage)
- example:
?precision=2
(2 digits after the decimal point)
locale
- importance: optional
- location: query
- type: string
- format: IETF BCP 47 language tag
- meaning: locale to use when rendering the uptime label and percentage
- range: any language tag supported by Windows or ICU (on *nix); the "uptime" label is currently badly localized in
de
,es
,fr
, andit
. - default:
en-US
(US English), or the server user's locale when self-hosted - example:
?locale=fr
(France format)
- Response body: JSON object that conforms to the Shields.io JSON Endpoint schema
{ "schemaVersion": 1, "label": "uptime", "message": "99.9133%", "color": "brightgreen", "isError": false, "logoSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"#fff\" d=\"M28 0H16C7.2 0 0 7.2 0 16s7.2 16 16 16 16-7.2 16-16V4c0-2.2-1.8-4-4-4zM16 7.7c4.4 0 8 3.5 8.3 7.8h-4l-2.4-3.1c-.2-.3-.6-.4-1-.4-.4.1-.7.3-.8.7l-1.8 5.1-1.3-1.9c-.2-.3-.5-.4-.8-.4H7.7c.2-4.4 3.9-7.8 8.3-7.8zm0 16.6c-4.1 0-7.5-2.9-8.2-6.8h3.9l2.3 3c.2.3.5.4.8.4h.2c.4-.1.7-.3.8-.7l1.8-5.1 1.5 2c.2.2.5.4.8.4h4.4c-.8 3.9-4.2 6.8-8.3 6.8z\"/></svg>" }