> ## Documentation Index
> Fetch the complete documentation index at: https://developers.scoutworks.app/llms.txt
> Use this file to discover all available pages before exploring further.

# The group and key this API key belongs to

> Needs no scope. Use it to check a key works and to see which scopes it carries. Scopes removed from the API since the key was created are not listed.



## OpenAPI

````yaml /api-reference/openapi.json get /me
openapi: 3.1.0
info:
  title: Scoutworks public API
  version: 1.1.0
  description: >-
    Read your Scout group’s data from your own tools: spreadsheets, scripts,
    Zapier or n8n. Every request is scoped to the group that owns the key.


    **Authentication.** Send a group API key as a Bearer token. Keys are created
    by a group admin and shown once.


    **Scopes.** Each operation names the scope it needs. Area scopes
    (`members:read`, `events:read`, `badges:read`, `waiting-list:read`) open an
    area; a `.contacts` scope adds dates of birth and parent details to that
    area’s responses. Fields a key may not see are left out, not sent as null.
    Health, bank details and free-text notes are never available.


    **Pagination.** Lists return `{ data, nextCursor }`. Pass `nextCursor` back
    as `?cursor=`, with the same filters, until it is null. `limit` is 1 to 200.


    **Errors.** Every error is `{ error: { code, message } }`. Branch on `code`;
    `message` is for people and may change.


    **Compatibility.** We aim to change v1 only by addition: new endpoints, new
    optional parameters, new response fields and new enum values. Ignore fields
    you do not know and treat an unknown enum value as “other”. We will try to
    warn you before a breaking change, but one can still happen without notice,
    so check responses and fail loudly on an error. Changes are listed in the
    changelog at https://developers.scoutworks.app/changelog.


    **Rate limits.** 120 requests a minute per key. `RateLimit-*` headers report
    what is left.
servers:
  - url: https://api.scoutworks.app/api/v1
    description: Live
  - url: https://api-demo.scoutworks.app/api/v1
    description: Demo (sample data, reset weekly)
security:
  - bearerAuth: []
tags:
  - name: Keys
    description: Check a key and see what it can reach.
  - name: Members
    description: Young people in the group.
  - name: Events
    description: Meetings, trips and camps, and who is going.
  - name: Badges
    description: Badge progress and awards.
  - name: Waiting list
    description: Applications waiting for a place.
paths:
  /me:
    get:
      tags:
        - Keys
      summary: The group and key this API key belongs to
      description: >-
        Needs no scope. Use it to check a key works and to see which scopes it
        carries. Scopes removed from the API since the key was created are not
        listed.
      operationId: getMe
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ApiKeyMeResponse'
                required:
                  - data
                additionalProperties: {}
          headers:
            RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the window resets.
              schema:
                type: integer
        '401':
          description: >-
            No API key, or one that is unknown, revoked or expired
            (`invalid_api_key`).
          headers:
            RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the window resets.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
        '429':
          description: Too many requests; wait `retryAfter` seconds (`rate_limited`).
          headers:
            RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before trying again.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
        '500':
          description: Our fault; quote `errorRef` to support (`internal_error`).
          headers:
            RateLimit-Limit:
              description: Requests allowed in the current window.
              schema:
                type: integer
            RateLimit-Remaining:
              description: Requests left in the current window.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the window resets.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
      security:
        - bearerAuth: []
components:
  schemas:
    ApiKeyMeResponse:
      type: object
      properties:
        group:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
          required:
            - id
            - name
        key:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            last4:
              type: string
            scopes:
              type: array
              items:
                $ref: '#/components/schemas/ApiScope'
            expiresAt:
              anyOf:
                - type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                - type: 'null'
              description: When the key stops working. `null` means it never expires.
          required:
            - id
            - name
            - last4
            - scopes
            - expiresAt
        environment:
          type: string
          enum:
            - production
            - staging
            - demo
            - development
          description: >-
            Which Scoutworks deployment answered. `demo` holds only made-up
            data. A key works only on the deployment that created it. Treat an
            unknown value as “other”.
        links:
          type: object
          properties:
            docs:
              type: string
              description: The developer docs.
            try:
              anyOf:
                - type: string
                - type: 'null'
              description: >-
                A first list request this key may make, as a path under the API
                host. `null` when the key has no area scope yet.
          required:
            - docs
            - try
          description: Where to go next.
      required:
        - group
        - key
        - environment
        - links
    V1Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_api_key
                - insufficient_scope
                - invalid_request
                - not_found
                - rate_limited
                - internal_error
            message:
              type: string
          required:
            - code
            - message
        errorRef:
          description: 'On a 500: a reference to quote to Scoutworks support.'
          type: string
        retryAfter:
          description: 'On a 429: seconds to wait before trying again.'
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
      required:
        - error
    ApiScope:
      type: string
      enum:
        - members:read
        - members.contacts:read
        - events:read
        - badges:read
        - waiting-list:read
        - waiting-list.contacts:read
      description: A registered public API scope.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        A group API key, sent as `Authorization: Bearer sw_live_…`. A group
        admin creates keys in Settings → Integrations → API keys.

````