TL;DR: This guide explains how to use BoldSign’s API to enable team-based contract management by organizing users into functional groups (HR, Sales, Legal, Finance) and controlling template/document access at the group level securely and without managing permissions user-by-user. It then shows the essential REST calls to create, rename, retrieve, and list/search these groups programmatically (with API key or OAuth2 authentication).
Use BoldSign to programmatically create, rename, retrieve, and list/search teams in your organization to ensure the right users can access the right templates and documents without manual permission juggling. This supports team-based contract management by letting you organize departments (HR, Sales, Legal, Finance) and control access at the team level, keeping eSignature workflows secure, consistent, and audit-ready.
This guide is for developers and admins who want a scalable way to manage departmental structure and maintain secure, auditable workflows as the organization grows.
What are BoldSign teams, and why would you use them?
In BoldSign, a team is a group of users inside your organization that helps you:
- Protect documents from unintended access across groups.
- Share templates within the right team(s) for consistent sending.
- Reduce admin overhead by managing access at the team level instead of user-by-user.
When does team management matter most?
Teams are especially helpful when you need clear ownership and controlled sharing across departments, for example:
- Multiple departments handle different document types (HR offers, Legal contracts, Sales agreements).
- Templates must be shared only within a specific group without exposing sensitive data.
- Admins need a reliable way to review team structure for audits or compliance.
What you’ll need before calling the BoldSign API
Make sure you have the following in place:
- A BoldSign account (sandbox or production).
- An API key(orOAuth2 access token) to call BoldSign APIs over HTTPS.
- A REST client such as cURL, Postman, or your preferred HTTP library.
- TeamName to create a team, and TeamId to update or look up a team.
Authentication headers should be in one of the following formats:
- API Key: X-API-KEY:
- OAuth2: Authorization: Bearer
Note: The examples below use API Key authentication for clarity.
Which endpoints do you use to create, update, and list teams?
Base URL used in examples: https://api.boldsign.com
| Task | Method + Path | Key inputs | Output you can expect |
|---|---|---|---|
| Create a team | POST /v1/teams/create
|
TeamName (required) |
Team Id for the created team |
| Rename a team | PUT /v1/teams/update
|
TeamId (required), TeamName (required) |
Success/acknowledgement |
| Get team details | GET /v1/teams/get
|
TeamId (query, required) |
Team name, users, created/modified dates |
| List/search teams | GET /v1/teams/list
|
page/pageSize; searchKey (optional) |
Paged list of teams + metadata |
Step-by-step: How to create a team with POST /v1/teams/create
Outcome: You’ll create a new team (for example, “HR”) and receive a team ID you can store for future operations.
What parameters are required to create a team?
Required body field: TeamName (string). This is the name of the team you want to create.
Refer to the official Create Team API documentation for full details and best practice usage guidelines
Create team request examples
cURL
curl -X 'POST' \
'https://api.boldsign.com/v1/teams/create' \
-H 'accept: application/json' \
-H 'X-API-KEY: {your API key}' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"TeamName": "HR"
}'
C#
var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key");
var teamClient = new TeamClient(apiClient);
var team = new CreateTeam()
{
TeamName = "HR"
};
var teamCreated = teamClient.CreateTeam(team);
Python
import boldsign
configuration = boldsign.Configuration(api_key="YOUR_API_KEY")
with boldsign.ApiClient(configuration) as api_client:
teams_api = boldsign.TeamsApi(api_client)
create_team_request = boldsign.CreateTeamRequest(teamName="HR")
team_created = teams_api.create_team(create_team_request=create_team_request)
PHP
<?php require_once "vendor/autoload.php";
use BoldSign\Configuration;
use BoldSign\Api\TeamsApi
use BoldSign\Model\CreateTeamRequest;
$config = new Configuration();
$config->setApiKey('YOUR_API_KEY');
$teams_api = new TeamsApi($config);
$create_team_request = new CreateTeamRequest();
$create_team_request->setTeamName('HR');
$team_created = $teams_api->createTeam($create_team_request);
Java
ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("YOUR_API_KEY");
TeamsApi teamsApi = new TeamsApi(client);
CreateTeamRequest createTeamRequest = new CreateTeamRequest();
createTeamRequest.setTeamName("HR");
TeamCreated teamCreated = teamsApi.createTeam(createTeamRequest);
Node js
import { CreateTeamRequest, TeamsApi } from "boldsign";
const teamsApi = new TeamsApi();
teamsApi.setApiKey("YOUR_API_KEY");
const createTeamRequest = new CreateTeamRequest();
createTeamRequest.teamName = "HR";
const teamCreated = teamsApi.createTeam(createTeamRequest);
Step-by-step: How to rename a team with PUT /v1/teams/update
Outcome: You’ll update an existing team’s name (for example, rename “Sales” to “Business Development”) without changing its team ID.
What parameters are required to update a team?
- TeamId: the unique identifier of the team to rename.
- TeamName: the new name you want to set.
Consult the official Update Team API documentation for full instructions and implementation details.
Update team request examples
cURL
curl -X 'PUT' \ ' https://api.boldsign.com/v1/teams/update' \
-H 'accept: */*' \
-H 'X-API-KEY: ' \
-H 'Content-Type: application/json;odata.metadata=minimal;odata.streaming=true' \
-d '{
"TeamId": "8b637de3-27db-4603-a7d7-6a4fdd0124b8",
"TeamName": "Sales"
}
C#
var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key");
var teamClient = new TeamClient(apiClient);
var team = new UpdateTeam()
{
TeamName = "Sales",
TeamId = "YOUR_TEAM_ID"
};
teamClient.UpdateTeam(team);
Python
import boldsign
configuration = boldsign.Configuration(api_key="YOUR_API_KEY")
with boldsign.ApiClient(configuration) as api_client:
teams_api = boldsign.TeamsApi(api_client)
team_update_request = boldsign.TeamUpdateRequest(
teamId="YOUR_TEAM_ID",
teamName="Sales")
teams_api.update_team(team_update_request=team_update_request)
PHP
<?php require_once "vendor/autoload.php";
use BoldSign\Configuration;
use BoldSign\Api\TeamsApi;
use BoldSign\Model\TeamUpdateRequest;
$config = new Configuration();
$config->setApiKey('YOUR_API_KEY');
$teams_api = new TeamsApi($config);
$team_update_request = new TeamUpdateRequest();
$team_update_request->setTeamName('Sales');
$team_update_request->setTeamId('YOUR_TEAM_ID');
$teams_api->updateTeam($team_update_request);
Java
ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("YOUR_API_KEY");
TeamsApi teamsApi = new TeamsApi(client);
TeamUpdateRequest teamUpdateRequest = new TeamUpdateRequest();
teamUpdateRequest.setTeamId("YOUR_TEAM_ID");
teamUpdateRequest.setTeamName("Sales");
teamsApi.updateTeam(teamUpdateRequest);
Node js
import { TeamsApi, TeamUpdateRequest } from "boldsign";
const teamsApi = new TeamsApi();
teamsApi.setApiKey("YOUR_API_KEY");
const teamUpdateRequest = new TeamUpdateRequest();
teamUpdateRequest.teamId = "YOUR_TEAM_ID";
teamUpdateRequest.teamName = "Sales";
teamsApi.updateTeam(teamUpdateRequest);
How to retrieve team details and members with GET /v1/teams/get
Use this endpoint when you need to confirm the current team name, see who’s in the team, or capture team metadata for reporting and audits.
Refer to the official Get Team API documentation for complete usage guidelines.
Get team details request examples
cURL
curl -X 'GET' \
'https://api.boldsign.com/v1/teams/get?teamId=a5016cef-7bcd-4a60-b8bf-98fed2183b5c' \
-H 'accept: application/json' \
-H 'X-API-KEY: {your API key}'
C#
var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key");
var teamClient = new TeamClient(apiClient);
var teamDetails = teamClient.GetTeamDetails("YOUR_TEAM_ID");
Python
import boldsign
configuration = boldsign.Configuration(api_key="YOUR_API_KEY")
with boldsign.ApiClient(configuration) as api_client:
teams_api = boldsign.TeamsApi(api_client)
team_details = teams_api.get_team(team_id="YOUR_TEAM_ID")
PHP
<?php require_once "vendor/autoload.php";
use BoldSign\Configuration;
use BoldSign\Api\TeamsApi;
$config = new Configuration();
$config->setApiKey('YOUR_API_KEY');
$teams_api = new TeamsApi($config);
$team_details = $teams_api->getTeam($team_id = 'YOUR_TEAM_ID');
Java
ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("YOUR_API_KEY");
TeamsApi teamsApi = new TeamsApi(client);
TeamResponse teamDetails = teamsApi.getTeam("YOUR_TEAM_ID");
Node js
import { TeamsApi } from "boldsign";
const teamsApi = new TeamsApi();
teamsApi.setApiKey("YOUR_API_KEY");
const teamDetails = teamsApi.getTeam("YOUR_TEAM_ID");
How to list or search teams with GET /v1/teams/list
Use this endpoint to fetch all teams, paginate results, and optionally filter by name (searchKey).
See the official documentation for listing teams for comprehensive usage instructions and parameter details.
Which query parameters control pagination and search?
| Parameter | Required? | What it does | Notes |
|---|---|---|---|
| page | No | Page number to fetch | Typically starts from 1 |
| pageSize | No | Number of teams per page | Defaults to 10; can be set between 1 and 100 |
| searchKey | No | Filter results by team attributes (e.g., teamname, teamId) | Useful for quick lookups (e.g., “sales”) |
List teams request examples
cURL
curl -X 'GET' \
'https://api.boldsign.com/v1/teams/list?page=1&pageSize=10&searchKey=sales' \
-H 'accept: application/json' \
-H 'X-API-KEY: {your API key}'
C#
var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key");
var teamClient = new TeamClient(apiClient);
var teamList = teamClient.ListTeam(1,10,"sales");
Python
import boldsign
configuration = boldsign.Configuration(api_key="YOUR_API_KEY")
with boldsign.ApiClient(configuration) as api_client:
teams_api = boldsign.TeamsApi(api_client)
team_list = teams_api.list_teams(page=1,page_size=10,search_key="sales")
PHP
<?php require_once "vendor/autoload.php";
use BoldSign\Configuration;
use BoldSign\Api\TeamsApi;
$config = new Configuration();
$config->setApiKey('YOUR_API_KEY');
$teams_api = new TeamsApi($config);
$team_list = $teams_api->listTeams($page = 1,$page_Size=10,$search_key='sales');
Java
ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("YOUR_API_KEY");
TeamsApi teamsApi = new TeamsApi(client);
int page = 1;
TeamListResponse teamList = teamsApi.listTeams(1, 10, "sales");
Node js
import { TeamsApi } from "boldsign";
const teamsApi = new TeamsApi();
teamsApi.setApiKey("YOUR_API_KEY");
const teamList = teamsApi.listTeams(1,10,"sales");
Real-world examples: how teams improve BoldSign workflows
Example 1: Create department teams for secure workspaces
Create teams like HR, Sales, Legal, and Finance so each department has a clean workspace and documents are shared only with the right group.
Example 2: Rename a team during org changes without breaking automation
If “Sales” becomes “Business Development,” update the name via the team ID so integrations continue to work without re-wiring access rules.
Summary: Managing Teams with BoldSign APIs
Teams are a foundational building block when your eSignature workflows need to reflect real organizational structure such as departments, business units, or customer tenants. With BoldSign team management documentation, you can create a team, list teams for admin UIs, fetch team details (including users), and rename teams when org structures change.
Start by running the cURL calls in your BoldSign account (sandbox or production) to validate behavior, then wrap the endpoints inside a service layer (or use the .NET SDK to reduce boilerplate). Finally, build in the essentials such as validation, pagination, and resilient error handling so your provisioning stays reliable as your customer base grows.
Ready to get started?
Sign up today for 30-day free trial and experience the full power of BoldSign advanced features.
We’d love to hear your feedback! Drop your thoughts in the comments section below.
Need assistance? Visit our support portal or schedule a personalized demo with our team.
Related blogs
- Schedule Contract Delivery with BoldSign API Integration
- Embedding BoldSign API in MAUI Mobile App: Quick Setup Guide
- BoldSign Introduces QES with Evrotrust Partnership
Note: This blog was originally published at boldsign.com
Top comments (0)