F-Keys Creative LLC Status API

The daily snapshot behind the status page: uptime, package installs, paper views and aggregate site traffic.

GitHub OpenAPI

Operations 1

1 of 1 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-12. how this works · status file

GET /status/latest.json Status snapshot conformant #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/f-keys-com:f-keys-com-status-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

f-keys-com-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: F-Keys published data Status API
  version: 1.0.0
  summary: Read-only static datasets. Not a hosted API.
  description: 'F-Keys does not run a hosted API. Nothing here takes a parameter, no request

    is authenticated, there are no write operations, and there is no rate limit

    because there is no server of ours in the path - every file below is static

    and served from a CDN.


    What this document describes is the read-only data surface that already

    exists: the published gonzalgo measurement tables, the Kernel Trust Profile

    schema and the profiles conforming to it, and the daily status snapshot. It

    is here so an agent can find those files and know their shape without

    scraping HTML.


    Every path in this specification is generated from a file that exists in the

    repository. If a dataset is removed, it leaves this document on the next

    build rather than remaining as a promise.


    Each measurement table is a single JSON object carrying its own name,

    description, version, sha256, license and series DOI alongside its rows, so a

    consumer can cite it and verify it did not change underneath them.


    Pages on this site also serve `text/markdown` when the request asks for it

    via `Accept`, per acceptmarkdown.com.'
  contact:
    name: F-Keys
    email: hello@f-keys.com
    url: https://f-keys.com/contact.html
  license:
    name: CC BY 4.0
    identifier: CC-BY-4.0
servers:
- url: https://f-keys.com/v1
  description: 'Version 1. The same documents as the bare paths, under a prefix that carries a promise: what is served here keeps the shape it has today, and a breaking change appears as /v2 while /v1 is served with Deprecation and Sunset headers for 180 days. Responses carry X-API-Version: v1.'
- url: https://f-keys.com
  description: The same files without the version prefix. Identical bytes; pin on each document's own sha256 or seriesDoi instead of on a path.
tags:
- name: Status
  description: 'The daily snapshot behind the status page: uptime, package installs, paper views and aggregate site traffic.'
paths:
  /status/latest.json:
    get:
      summary: Status snapshot
      description: Uptime, package installs, publication views and aggregate traffic. Repository traffic is owner-only and is not here. Prior days are archived at /status/data/YYYY-MM-DD.json using the same shape; this file is a copy of the most recent one.
      operationId: status_latest
      tags:
      - Status
      responses:
        '200':
          description: Status snapshot
          content:
            application/json:
              schema:
                type: object
                title: Status snapshot
                required:
                - date
                - generated_at
                - summary
                properties:
                  date:
                    type: string
                    format: date
                  generated_at:
                    type: string
                  mode:
                    type: string
                    enum:
                    - daily
                    - weekly
                  redacted:
                    type: string
                    description: What this published copy leaves out.
                  summary:
                    type: object
                    description: The headline figures. A key is absent when the source behind it did not report.
                    additionalProperties:
                      type:
                      - integer
                      - 'null'
                  uptime:
                    type: array
                    items:
                      type: object
                      required:
                      - name
                      - up
                      properties:
                        name:
                          type: string
                        url:
                          type: string
                          format: uri
                        up:
                          type: boolean
                        ms:
                          type: integer
                        error:
                          type:
                          - string
                          - 'null'
                  npm:
                    type: array
                    items:
                      $comment: package row
                      type: object
                  pypi:
                    type: array
                    items:
                      $comment: package row
                      type: object
                  github:
                    type: array
                    items:
                      type: object
                  zenodo:
                    type: object
                    properties:
                      error:
                        type:
                        - string
                        - 'null'
                      records:
                        type: array
                        items:
                          type: object
                  cloudflare:
                    type: object
                    properties:
                      days:
                        type: integer
                      error:
                        type:
                        - string
                        - 'null'
                      sites_omitted:
                        type: integer
                      sites:
                        type: array
                        items:
                          type: object
                      totals:
                        type: object
                      window:
                        type: object
                      bots_24h:
                        type: object
                        additionalProperties:
                          type: integer
                        description: Requests per bot category in the last 24 hours. Keys are Cloudflare's categories and vary.
                      bots_error:
                        type:
                        - string
                        - 'null'
                  history:
                    type: array
                    items:
                      type: object
                description: Uptime, package installs, publication views and aggregate traffic. Repository traffic is owner-only and is not here. Prior days are archived at /status/data/YYYY-MM-DD.json using the same shape; this file is a copy of the most recent one.
        '404':
          description: The path does not exist. Returned as JSON when the request asks for it, so an agent does not have to parse an HTML error page.
          content:
            application/json:
              schema:
                type: object
                title: Error
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    - status
                    properties:
                      code:
                        type: string
                        description: Stable machine-readable identifier.
                      message:
                        type: string
                      status:
                        type: integer
                      path:
                        type: string
                      hints:
                        type: array
                        items:
                          type: string
                        description: Where to look instead.
              example:
                error:
                  code: not_found
                  message: No resource exists at /gonzalgo/nope.json
                  status: 404
                  hints:
                  - Every published path is listed in https://f-keys.com/openapi.json
                  - The full site map is at https://f-keys.com/sitemap.xml
                  - A plain-text catalog is at https://f-keys.com/llms.txt
externalDocs:
  url: https://f-keys.com/developers.html
  description: Developer resources
x-versioning:
  strategy: url-path
  current: v1
  summary: Every document is served both at its bare path and under /v1, byte for byte. Integrate against /v1 for a stable shape, or against the bare path and pin on the sha256 each document carries.
  detail: A measurement table is republished at the same URL when it is re-measured, and its `version` (the measurement date) and `sha256` both change - the numbers move, the shape does not. If a shape ever has to change, it appears under /v2 and /v1 keeps serving the old shape for the notice period. Responses under a version prefix carry `X-API-Version`. An unknown version answers 404 with the code `unknown_version` rather than looking like a mistyped path.
  breakingChangePolicy: Fields are added, not removed or retyped. A field that must go is announced in the working log at https://f-keys.com/log/ and kept for at least 180 days after that entry.
  deprecation:
    signal: A path scheduled for removal is served with the `Deprecation` and `Sunset` headers of RFC 8594 and RFC 9745, and is listed under x-versioning.deprecated here.
    noticePeriod: P180D
  deprecated: []
  changeLog: https://f-keys.com/log/
x-rate-limit:
  enforced: false
  summary: No rate limit. These are static files on a CDN; there is no quota, no API key and no 429.
  detail: No RateLimit or Retry-After headers are returned, because there is nothing behind them to enforce. Fetch as needed, and prefer the ETag and Last-Modified the CDN already sends so a repeat fetch costs a 304. If a request is ever refused it is the CDN's own abuse protection, not a published quota.
  conditionalRequests:
  - ETag
  - If-None-Match
  - Last-Modified
  - If-Modified-Since