---
title: "Add scope member"
method: POST
path: "/scopes/{scope}/members"
---

# Add scope member

`POST /scopes/{scope}/members`

Invites a user to a scope

## Path parameters

- `scope` string, required — The name of a scope. This must not be @ prefixed.

## Request body

- AddScopeMemberRequest
  - `githubLogin` string, required — The GitHub login of the user to add to the scope.

## Response `200`

OK

- ScopeInvite
  - `scope` string, required — The name of a scope. This must not be @ prefixed.
  - `targetUser` object, required — The user that the invite is for.
    - `id` string, uuid, required — The ID of a user.
    - `name` string, required — The user's display name.
    - `email` string — The user's email address.
    - `avatarUrl` string, required — The URL to the user's avatar.
    - `githubId` integer — The user's GitHub ID.
    - `isBlocked` boolean — Whether the user is blocked from using the registry.
    - `isStaff` boolean — Whether the user is a staff member.
    - `scopeUsage` integer — The number of scopes the user created.
    - `scopeLimit` integer — The maximum number of scopes the user can create.
    - `inviteCount` integer — The number of invites pending for the user.
    - `createdAt` string, date-time, required — The date and time when the user profile was created.
    - `updatedAt` string, date-time, required — The date and time when the user profile was last updated.
  - `inviter` object, required — The user that sent the invite.
    - `id` string, uuid, required — The ID of a user.
    - `name` string, required — The user's display name.
    - `email` string — The user's email address.
    - `avatarUrl` string, required — The URL to the user's avatar.
    - `githubId` integer — The user's GitHub ID.
    - `isBlocked` boolean — Whether the user is blocked from using the registry.
    - `isStaff` boolean — Whether the user is a staff member.
    - `scopeUsage` integer — The number of scopes the user created.
    - `scopeLimit` integer — The maximum number of scopes the user can create.
    - `inviteCount` integer — The number of invites pending for the user.
    - `createdAt` string, date-time, required — The date and time when the user profile was created.
    - `updatedAt` string, date-time, required — The date and time when the user profile was last updated.
  - `createdAt` string, date-time, required — The date and time when the invite was created.
  - `updatedAt` string, date-time, required — The date and time when the invite was last updated.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — User is not scope admin
- `404` — Scope not found

## Changes

- **2024-02-28** `f8d3b912d946` — 4 breaking, 1 warning, 8 info
  - added the new required request property `githubLogin`
  - removed `subschema #1, subschema #2` from the request body `oneOf` list
  - the request's body type/format changed from ``/`` to `object`/``
  - removed the required property `requestingUser` from the response with the `200` status
  - …9 more

[Change history](https://skmtc.dev/jsr-io/apis/jsr-api/changes/scopes/:scope/members/post.md)

---

[API](https://skmtc.dev/jsr-io/apis/jsr-api.md) · [All operations](https://skmtc.dev/jsr-io/apis/jsr-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jsr-io/jsr-api/revisions/bdf10fdaec39/schema)
