Medblocks Public Site API

A narrow, unauthenticated, read-only API that medblocks.com publishes for third-party and automated use: training-certificate verification plus the machine-readable blog RSS feed and sitemap index. Described by an OpenAPI 3.1 document served at the site root and advertised through the site's RFC 9727 /.well-known/api-catalog linkset.

Operations 3

GET /api/certificates/{id} Verify a Medblocks training certificate #
GET /rss.xml RSS feed of the Medblocks blog #
GET /sitemap-index.xml Sitemap index for medblocks.com #

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/medblocks-public-site-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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

OpenAPI Specification

medblocks-public-site-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Medblocks Public API",
    "version": "1.0.0",
    "summary": "Public read-only endpoints and machine-readable feeds published by medblocks.com.",
    "description": "This document describes only the endpoints that medblocks.com publishes for third-party and automated use. It is intentionally narrow: other routes under /api are internal to the medblocks.com frontend, are not versioned, and are not supported for external callers.\n\nAll endpoints listed here are unauthenticated, read-only, and safe to retry.",
    "contact": {
      "name": "Medblocks",
      "url": "https://medblocks.com/contact",
      "email": "content@medblocks.com"
    }
  },
  "servers": [
    {
      "url": "https://medblocks.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "Certificates",
      "description": "Verify a training certificate issued by Medblocks."
    },
    {
      "name": "Feeds",
      "description": "Machine-readable indexes of site content."
    }
  ],
  "paths": {
    "/api/certificates/{id}": {
      "get": {
        "operationId": "getCertificate",
        "tags": ["Certificates"],
        "summary": "Verify a Medblocks training certificate",
        "description": "Returns the details of a certificate issued for completing a Medblocks course. Use this to confirm that a certificate presented by a candidate is genuine. The human-readable equivalent is https://medblocks.com/certificates/{id}.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The certificate identifier, as printed on the certificate.",
            "schema": { "type": "string" }
          }
        ],
        "responses": {
          "200": {
            "description": "The certificate exists.",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Certificate" }
              }
            }
          },
          "400": {
            "description": "No certificate identifier was supplied.",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Error" }
              }
            }
          },
          "404": {
            "description": "No certificate exists with that identifier.",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Error" }
              }
            }
          },
          "500": {
            "description": "The certificate could not be looked up.",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/Error" }
              }
            }
          }
        }
      }
    },
    "/rss.xml": {
      "get": {
        "operationId": "getBlogFeed",
        "tags": ["Feeds"],
        "summary": "RSS feed of the Medblocks blog",
        "description": "The 30 most recent articles on healthcare interoperability, FHIR, openEHR and SNOMED CT.",
        "responses": {
          "200": {
            "description": "An RSS 2.0 feed.",
            "content": {
              "application/xml": {
                "schema": { "type": "string" }
              }
            }
          }
        }
      }
    },
    "/sitemap-index.xml": {
      "get": {
        "operationId": "getSitemapIndex",
        "tags": ["Feeds"],
        "summary": "Sitemap index for medblocks.com",
        "description": "Points to the sitemaps listing every indexable page on the site. Documentation pages are covered by a separate sitemap at /docs/sitemap.xml.",
        "responses": {
          "200": {
            "description": "A sitemap index document.",
            "content": {
              "application/xml": {
                "schema": { "type": "string" }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Certificate": {
        "type": "object",
        "properties": {
          "course_name": {
            "type": ["string", "null"],
            "description": "Title of the course the certificate was issued for.",
            "examples": ["FHIR Bootcamp"]
          },
          "user_name": {
            "type": ["string", "null"],
            "description": "Name of the person the certificate was issued to."
          },
          "completion_date": {
            "type": ["string", "null"],
            "format": "date-time",
            "description": "When the course was completed."
          },
          "date_created": {
            "type": ["string", "null"],
            "format": "date-time",
            "description": "When the certificate record was created."
          },
          "date_updated": {
            "type": ["string", "null"],
            "format": "date-time",
            "description": "When the certificate record was last changed."
          },
          "image": {
            "type": ["string", "null"],
            "description": "Identifier of the certificate image, when one has been generated."
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "A human-readable description of what went wrong."
          }
        },
        "required": ["error"]
      }
    }
  }
}