DEV Community

Cover image for Manage Contracts Across Teams with BoldSign API
Vijay Amalan for BoldSign

Posted on • Originally published at boldsign.com

Manage Contracts Across Teams with BoldSign API

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" 
    }' 
Enter fullscreen mode Exit fullscreen mode

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); 
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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); 
Enter fullscreen mode Exit fullscreen mode

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); 
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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"
    }
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

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); 
Enter fullscreen mode Exit fullscreen mode

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); 
Enter fullscreen mode Exit fullscreen mode

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}'
Enter fullscreen mode Exit fullscreen mode

C#

    var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key"); 
    var teamClient = new TeamClient(apiClient); 
    var teamDetails = teamClient.GetTeamDetails("YOUR_TEAM_ID"); 
Enter fullscreen mode Exit fullscreen mode

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")       
Enter fullscreen mode Exit fullscreen mode

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'); 
Enter fullscreen mode Exit fullscreen mode

Java

    ApiClient client = Configuration.getDefaultApiClient();
    client.setApiKey("YOUR_API_KEY"); 

    TeamsApi teamsApi = new TeamsApi(client); 
    TeamResponse teamDetails = teamsApi.getTeam("YOUR_TEAM_ID");
Enter fullscreen mode Exit fullscreen mode

Node js

    import { TeamsApi } from "boldsign"; 
    const teamsApi = new TeamsApi(); 
    teamsApi.setApiKey("YOUR_API_KEY"); 
    const teamDetails = teamsApi.getTeam("YOUR_TEAM_ID");
Enter fullscreen mode Exit fullscreen mode

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}' 
Enter fullscreen mode Exit fullscreen mode

C#

    var apiClient = new ApiClient("https://api.boldsign.com", "Your_API_Key"); 
    var teamClient = new TeamClient(apiClient); 
    var teamList = teamClient.ListTeam(1,10,"sales");
Enter fullscreen mode Exit fullscreen mode

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")
Enter fullscreen mode Exit fullscreen mode

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'); 
Enter fullscreen mode Exit fullscreen mode

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"); 
Enter fullscreen mode Exit fullscreen mode

Node js

    import { TeamsApi } from "boldsign"; 
    const teamsApi = new TeamsApi(); 
    teamsApi.setApiKey("YOUR_API_KEY"); 
    const teamList = teamsApi.listTeams(1,10,"sales");
Enter fullscreen mode Exit fullscreen mode

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

Note: This blog was originally published at boldsign.com

Top comments (0)