Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.spitshake.io/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Teams let you organize account members into groups with shared access to specific templates. Each team has members with assigned roles and a set of template access grants. Users can belong to multiple teams.

Team Object

The compact team representation returned in list endpoints:
{
  "id": 7,
  "name": "Legal Department",
  "description": "Handles all contract and NDA templates",
  "member_count": 5,
  "created_at": "2026-03-15T09:00:00Z"
}
The full team representation includes members and template access grants:
{
  "id": 7,
  "name": "Legal Department",
  "description": "Handles all contract and NDA templates",
  "member_count": 5,
  "created_at": "2026-03-15T09:00:00Z",
  "members": [
    {
      "id": 101,
      "email": "sarah@yourcompany.com",
      "first_name": "Sarah",
      "last_name": "Chen",
      "role": "admin",
      "added_at": "2026-03-15T09:00:00Z"
    },
    {
      "id": 102,
      "email": "james@yourcompany.com",
      "first_name": "James",
      "last_name": "Wilson",
      "role": "member",
      "added_at": "2026-03-15T09:05:00Z"
    },
    {
      "id": 103,
      "email": "maria@yourcompany.com",
      "first_name": "Maria",
      "last_name": "Garcia",
      "role": "member",
      "added_at": "2026-03-16T10:00:00Z"
    },
    {
      "id": 104,
      "email": "david@yourcompany.com",
      "first_name": "David",
      "last_name": "Park",
      "role": "member",
      "added_at": "2026-03-17T14:30:00Z"
    },
    {
      "id": 105,
      "email": "lisa@yourcompany.com",
      "first_name": "Lisa",
      "last_name": "Thompson",
      "role": "member",
      "added_at": "2026-03-18T08:15:00Z"
    }
  ],
  "template_accesses": [
    {
      "template_id": 201,
      "template_name": "Standard NDA",
      "access_level": "full",
      "granted_at": "2026-03-15T09:10:00Z"
    },
    {
      "template_id": 202,
      "template_name": "Employment Contract",
      "access_level": "full",
      "granted_at": "2026-03-15T09:10:00Z"
    },
    {
      "template_id": 205,
      "template_name": "Vendor Agreement",
      "access_level": "read_only",
      "granted_at": "2026-03-20T11:00:00Z"
    }
  ]
}

Member Roles

RolePermissions
adminAdd/remove members, manage template access, edit team settings, delete team
memberView team templates, create submissions from team templates

List Teams

curl -X GET "https://spitshake.io/api/teams" \
  -H "X-Auth-Token: YOUR_API_TOKEN"
[
  {
    "id": 7,
    "name": "Legal Department",
    "description": "Handles all contract and NDA templates",
    "member_count": 5,
    "created_at": "2026-03-15T09:00:00Z"
  },
  {
    "id": 8,
    "name": "Sales Team",
    "description": "Proposals and order forms",
    "member_count": 12,
    "created_at": "2026-03-20T14:00:00Z"
  },
  {
    "id": 9,
    "name": "Human Resources",
    "description": "Onboarding and benefits documents",
    "member_count": 3,
    "created_at": "2026-04-01T08:00:00Z"
  }
]

Get Team

Retrieve the full team object including members and template accesses.
curl -X GET "https://spitshake.io/api/teams/7" \
  -H "X-Auth-Token: YOUR_API_TOKEN"
{
  "id": 7,
  "name": "Legal Department",
  "description": "Handles all contract and NDA templates",
  "member_count": 5,
  "created_at": "2026-03-15T09:00:00Z",
  "members": [
    {
      "id": 101,
      "email": "sarah@yourcompany.com",
      "first_name": "Sarah",
      "last_name": "Chen",
      "role": "admin",
      "added_at": "2026-03-15T09:00:00Z"
    },
    {
      "id": 102,
      "email": "james@yourcompany.com",
      "first_name": "James",
      "last_name": "Wilson",
      "role": "member",
      "added_at": "2026-03-15T09:05:00Z"
    },
    {
      "id": 103,
      "email": "maria@yourcompany.com",
      "first_name": "Maria",
      "last_name": "Garcia",
      "role": "member",
      "added_at": "2026-03-16T10:00:00Z"
    },
    {
      "id": 104,
      "email": "david@yourcompany.com",
      "first_name": "David",
      "last_name": "Park",
      "role": "member",
      "added_at": "2026-03-17T14:30:00Z"
    },
    {
      "id": 105,
      "email": "lisa@yourcompany.com",
      "first_name": "Lisa",
      "last_name": "Thompson",
      "role": "member",
      "added_at": "2026-03-18T08:15:00Z"
    }
  ],
  "template_accesses": [
    {
      "template_id": 201,
      "template_name": "Standard NDA",
      "access_level": "full",
      "granted_at": "2026-03-15T09:10:00Z"
    },
    {
      "template_id": 202,
      "template_name": "Employment Contract",
      "access_level": "full",
      "granted_at": "2026-03-15T09:10:00Z"
    },
    {
      "template_id": 205,
      "template_name": "Vendor Agreement",
      "access_level": "read_only",
      "granted_at": "2026-03-20T11:00:00Z"
    }
  ]
}

Create Team

curl -X POST "https://spitshake.io/api/teams" \
  -H "X-Auth-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Finance Team",
    "description": "Invoice and payment document management"
  }'
{
  "id": 10,
  "name": "Finance Team",
  "description": "Invoice and payment document management",
  "member_count": 1,
  "created_at": "2026-04-08T15:00:00Z",
  "members": [
    {
      "id": 101,
      "email": "sarah@yourcompany.com",
      "first_name": "Sarah",
      "last_name": "Chen",
      "role": "admin",
      "added_at": "2026-04-08T15:00:00Z"
    }
  ],
  "template_accesses": []
}

Update Team

curl -X PUT "https://spitshake.io/api/teams/10" \
  -H "X-Auth-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Finance & Accounting",
    "description": "Invoice, payment, and audit document management"
  }'
{
  "id": 10,
  "name": "Finance & Accounting",
  "description": "Invoice, payment, and audit document management",
  "member_count": 1,
  "created_at": "2026-04-08T15:00:00Z"
}

Delete Team

Deleting a team removes all member associations and template access grants. It does not delete the members or templates themselves.
curl -X DELETE "https://spitshake.io/api/teams/10" \
  -H "X-Auth-Token: YOUR_API_TOKEN"
{
  "success": true,
  "message": "Team 'Finance & Accounting' has been deleted."
}

Add Member

curl -X POST "https://spitshake.io/api/teams/7/members" \
  -H "X-Auth-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": 106,
    "role": "member"
  }'
{
  "id": 106,
  "email": "alex@yourcompany.com",
  "first_name": "Alex",
  "last_name": "Rivera",
  "role": "member",
  "added_at": "2026-04-08T15:30:00Z"
}

Update Member Role

curl -X PUT "https://spitshake.io/api/teams/7/members/102" \
  -H "X-Auth-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'
{
  "id": 102,
  "email": "james@yourcompany.com",
  "first_name": "James",
  "last_name": "Wilson",
  "role": "admin",
  "added_at": "2026-03-15T09:05:00Z"
}

Remove Member

curl -X DELETE "https://spitshake.io/api/teams/7/members/105" \
  -H "X-Auth-Token: YOUR_API_TOKEN"
{
  "success": true,
  "message": "User lisa@yourcompany.com has been removed from the team."
}

Grant Template Access

curl -X POST "https://spitshake.io/api/teams/7/template_accesses" \
  -H "X-Auth-Token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": 210,
    "access_level": "full"
  }'
{
  "template_id": 210,
  "template_name": "Consulting Agreement",
  "access_level": "full",
  "granted_at": "2026-04-08T15:45:00Z"
}

Access Levels

LevelCreate SubmissionsView SubmissionsEdit Template
fullYesYesYes
read_onlyNoYesNo

Revoke Template Access

curl -X DELETE "https://spitshake.io/api/teams/7/template_accesses/205" \
  -H "X-Auth-Token: YOUR_API_TOKEN"
{
  "success": true,
  "message": "Template access for 'Vendor Agreement' has been revoked from this team."
}