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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/fathom-events-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 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
openapi: 3.2.0
info:
title: Fathom Analytics REST Account Events API
description: 'Privacy-first, GDPR-compliant, cookie-free website analytics API. Manage sites, events, and milestones; generate aggregated custom reports; and retrieve real-time visitor counts. Authentication uses Bearer token API keys generated in the account settings area.
'
version: '1'
contact:
name: Fathom Analytics Support
email: support@usefathom.com
termsOfService: https://usefathom.com/terms
license:
name: Proprietary
servers:
- url: https://api.usefathom.com/v1
description: Fathom Analytics API v1
security:
- BearerAuth: []
tags:
- name: Events
description: Event management per site
paths:
/sites/{site_id}/events:
get:
operationId: listEvents
summary: List events
description: Returns a paginated list of events for a site.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/StartingAfter'
- $ref: '#/components/parameters/EndingBefore'
responses:
'200':
description: Paginated list of events
content:
application/json:
schema:
$ref: '#/components/schemas/EventList'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: createEvent
summary: Create event
description: Creates a new custom event for a site.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EventCreate'
responses:
'200':
description: Created event object
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/sites/{site_id}/events/{event_id}:
get:
operationId: getEvent
summary: Get event
description: Returns a single event by ID.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/EventId'
responses:
'200':
description: Event object
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: updateEvent
summary: Update event
description: Updates an event's name.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/EventId'
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/EventUpdate'
responses:
'200':
description: Updated event object
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteEvent
summary: Delete event
description: Permanently deletes an event.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/EventId'
responses:
'200':
description: Empty object on success
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/sites/{site_id}/events/{event_id}/data:
delete:
operationId: wipeEventData
summary: Wipe event data
description: Permanently wipes all data for an event without deleting the event itself.
tags:
- Events
parameters:
- $ref: '#/components/parameters/SiteId'
- $ref: '#/components/parameters/EventId'
responses:
'200':
description: Empty object on success
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
SiteId:
name: site_id
in: path
required: true
description: Unique identifier for the site.
schema:
type: string
Limit:
name: limit
in: query
required: false
description: Number of results per page (1-100, default 10).
schema:
type: integer
minimum: 1
maximum: 100
default: 10
EndingBefore:
name: ending_before
in: query
required: false
description: Cursor for backward pagination — return results before this ID.
schema:
type: string
EventId:
name: event_id
in: path
required: true
description: Unique identifier for the event.
schema:
type: string
StartingAfter:
name: starting_after
in: query
required: false
description: Cursor for forward pagination — return results after this ID.
schema:
type: string
schemas:
Event:
type: object
properties:
id:
type: string
description: Unique event identifier.
object:
type: string
example: event
name:
type: string
description: Event display name.
site_id:
type: string
description: ID of the site this event belongs to.
created_at:
type: string
format: date-time
Error:
type: object
properties:
error:
type: string
description: Human-readable error message.
required:
- error
EventUpdate:
type: object
properties:
name:
type: string
description: New display name for the event.
EventList:
type: object
properties:
object:
type: string
example: list
data:
type: array
items:
$ref: '#/components/schemas/Event'
has_more:
type: boolean
EventCreate:
type: object
required:
- name
properties:
name:
type: string
description: Display name for the event.
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: API key generated in account settings at https://app.usefathom.com/api