GoatCounter Users API
The Users API from GoatCounter — 1 operation(s) for users.
The Users API from GoatCounter — 1 operation(s) for users.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/goatcounter-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Goatcounter Users API
version: '1.0'
description: 'Operations tagged users across 2 of this provider''s published API definitions: goatcounter-api-swagger20.json, goatcounter-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://goatcounter.com/api/v0
description: Hosted GoatCounter (replace host with your site's subdomain)
tags:
- name: users
paths:
/api/v0/me:
get:
operationId: GET_api_v0_me
responses:
'200':
description: 200 OK
content:
application/json:
schema:
$ref: '#/components/schemas/handlers.meResponse'
'400':
description: 400 Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/handlers.apiError'
'401':
description: 401 Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/handlers.authError'
'403':
description: 403 Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/handlers.authError'
summary: Get information about the current user and API key.
tags:
- users
security:
- basicAuth: []
/me:
get:
summary: Get current user
operationId: getMe
tags:
- users
responses:
'200':
description: Current user info.
security:
- bearerAuth: []
servers:
- url: https://goatcounter.com/api/v0
description: Hosted GoatCounter (replace host with your site's subdomain)
components:
schemas:
goatcounter.APIToken:
title: APIToken
type: object
properties:
name:
type: string
permissions:
type: integer
sites:
type: integer
items: {}
goatcounter.View:
title: View
description: 'Views for the dashboard; these settings apply to all widget and are
configurable in the yellow box at the top.'
type: object
properties:
filter:
type: string
group:
type: integer
name:
type: string
period:
description: '"week", "month", etc., or n days: "8"'
type: string
handlers.meResponse:
title: meResponse
type: object
properties:
token:
$ref: '#/components/schemas/goatcounter.APIToken'
user:
$ref: '#/components/schemas/goatcounter.User'
goatcounter.UserAccess:
title: UserAccess
type: object
goatcounter.UserSettings:
title: UserSettings
description: UserSettings are all user preferences.
type: object
properties:
date_format:
type: string
datepicker:
type: boolean
email_reports:
type: integer
fewer_numbers:
type: boolean
fewer_numbers_lock_until:
type: string
format: date-time
language:
type: string
number_format:
type: string
sunday_starts_week:
type: boolean
theme:
type: string
timezone:
$ref: '#/components/schemas/tz.Zone'
twenty_four_hours:
type: boolean
views:
type: array
items:
$ref: '#/components/schemas/goatcounter.View'
widgets:
type: array
items:
$ref: '#/components/schemas/goatcounter.Widget'
tz.Zone:
title: Zone
description: Zone represents a time zone.
type: object
properties:
Abbr:
description: WITA – the correct abbreviation may change depending on the time of year (i.e. CET and CEST, depending on DST).
type: array
items:
type: string
Comments:
description: Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)
type: string
CountryCode:
description: ID
type: string
CountryName:
description: Indonesia
type: string
Zone:
description: Asia/Makassar
type: string
goatcounter.Widget:
title: Widget
description: Widgets is a list of widgets to be printed, in order.
type: object
handlers.apiError:
title: apiError
description: 'Generic API error. An error will have either the "error" or "errors"
field set, but not both.'
type: object
properties:
error:
type: string
errors:
type: object
goatcounter.User:
title: User
type: object
properties:
access:
type: object
readOnly: true
additionalProperties:
$ref: '#/components/schemas/goatcounter.UserAccess'
created_at:
type: string
format: date-time
readOnly: true
email:
type: string
email_verified:
type: boolean
readOnly: true
id:
type: integer
readOnly: true
last_report_at:
description: Keep track when the last email report was sent, so we don't double-send them.
type: string
format: date-time
login_at:
type: string
format: date-time
readOnly: true
open_at:
type: string
format: date-time
readOnly: true
reset_at:
type: string
format: date-time
readOnly: true
settings:
$ref: '#/components/schemas/goatcounter.UserSettings'
site:
type: integer
readOnly: true
totp_enabled:
type: boolean
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
handlers.authError:
title: authError
description: 'Authentication error: the API key was not provided or incorrect.'
type: object
properties:
Error:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
bearerAuth:
type: http
scheme: bearer
x-refined-from:
- goatcounter-api-swagger20.json
- goatcounter-openapi.yml