Create a free digital business card, then share it by link, QR code, or NFC tap.

Team access

owner_user_id identifies the workspace owner. member_user_id identifies the accepted member and is null while an invitation is pending. The legacy user_id field is deprecated. In collection responses it retains the member ID meaning, while detail and acceptance responses retain the owner ID meaning during the compatibility window.

Endpoint

GET https://zapped.to/api/teams-member/

Authentication

An API key with the teams:read scope (Read teams and members), sent as Authorization: Bearer YOUR_API_KEY.

Example

curl --request GET \
--url 'https://zapped.to/api/teams-member/' \
--header 'Authorization: Bearer YOUR_API_KEY' \
Parameters Details Description
search Optional String The search string.
search_by Optional String What field are you searching by. Allowed values are: name.
datetime_field Optional String Allowed values: datetime, last_datetime
datetime_start Optional String Filter results starting from this datetime. Y-m-d H:i:s format.
datetime_end Optional String Filter results up to this datetime. Y-m-d H:i:s format.
order_by Optional String What field to order the results by. Allowed values are: team_member_id, datetime, last_datetime.
order_type Optional String The ordering of the results. Allowed values are: ASC for ascending ordering, and DESC for descending ordering.
page Optional Integer The page number that you want results from. Defaults to 1.
results_per_page Optional Integer How many results you want per page. Allowed values are: 10, 25, 50, 100, 250, 500, 1000. Defaults to 25.

Response example

{
    "data": [
        {
            "id": 1,
            "access": {
                "read": true,
                "create": true,
                "update": true,
                "delete": false
            },
            "role": "editor",
            "resource_scope": "all",
            "status": 1,
            "last_datetime": null,
            "datetime": "2026-10-18 09:03:27",
            "team_id": 1,
            "user_id": 42,
            "owner_user_id": 7,
            "member_user_id": 42,
            "name": "Example team"
        },
        {
            "id": 2,
            "access": {
                "read": true,
                "create": false,
                "update": false,
                "delete": false
            },
            "role": "viewer",
            "resource_scope": "all",
            "status": 0,
            "last_datetime": null,
            "datetime": "2026-10-18 09:03:27",
            "team_id": 2,
            "user_id": 0,
            "owner_user_id": 9,
            "member_user_id": null,
            "name": "Pending team"
        }
    ],
    "meta": {
        "page": 1,
        "results_per_page": 25,
        "total": 2,
        "total_pages": 1
    },
    "links": {
        "first": "https://zapped.to/api/teams-member?page=1",
        "last": "https://zapped.to/api/teams-member?page=1",
        "next": null,
        "prev": null,
        "self": "https://zapped.to/api/teams-member?page=1"
    }
}

Endpoint

GET https://zapped.to/api/teams-member/{team_member_id}

Authentication

An API key with the teams:read scope (Read teams and members), sent as Authorization: Bearer YOUR_API_KEY.

Example

curl --request GET \
--url 'https://zapped.to/api/teams-member/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \

Response example

{
    "data": {
        "id": 1,
        "access": {
            "read": true,
            "create": true,
            "update": true,
            "delete": false
        },
        "role": "viewer",
        "resource_scope": "projects",
        "status": 1,
        "last_datetime": null,
        "datetime": "2026-10-18 09:03:27",
        "team_id": 1,
        "user_id": 7,
        "owner_user_id": 7,
        "member_user_id": 42,
        "name": "Example team"
    }
}

Endpoint

POST https://zapped.to/api/teams-member/{team_member_id}

Authentication

An API key with the teams:write scope (Manage teams, invitations and memberships), sent as Authorization: Bearer YOUR_API_KEY.

Parameters Details Description
status Required Boolean -
invitation_token Optional String Required for an unverified API account while the invitation is pending. A current exact-email verified account may omit it. Use the current opaque token from the invitation email as the compatible fallback. It is never returned by this API.

Example

curl --request POST \
--url 'https://zapped.to/api/teams-member/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'status=1' \
--form 'invitation_token={invitation_token}' \

Response example

{
    "data": {
        "id": 1,
        "role": "viewer",
        "resource_scope": "all",
        "status": 1,
        "team_id": 1,
        "user_id": 7,
        "owner_user_id": 7,
        "member_user_id": 42,
        "name": "Example team"
    }
}

Endpoint

DELETE https://zapped.to/api/teams-member/{team_member_id}

Authentication

An API key with the teams:write scope (Manage teams, invitations and memberships), sent as Authorization: Bearer YOUR_API_KEY.

Example

curl --request DELETE \
--url 'https://zapped.to/api/teams-member/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
For an authorized pending invitation, DELETE declines it. For an accepted membership, DELETE leaves the team and removes workspace access.

Declining a pending invitation requires either current exact-email verification for the API account or the current invitation_token in the DELETE form body.

A successful DELETE returns HTTP 200 with an empty response body.