GoatCounter Users API

The Users API from GoatCounter — 1 operation(s) for users.

Operations 2

GET /api/v0/me Get information about the current user and API key. #
GET /me Get current user #

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/goatcounter-users-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

goatcounter-users-api-openapi.yml Raw ↑
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