Bitbucket Server is Atlassian's enterprise Git repository management solution that provides secure, scalable version control for development teams, offering advanced code collaboration, branching strategies, and integration with Atlassian's suite of development tools.
Power end-to-end data operations for your Bitbucket Server API with Nexla. Our bi-directional Bitbucket Server connector is purpose-built for Bitbucket Server, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Bitbucket Server or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Bitbucket Server workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Bitbucket Server credential, you need to obtain authentication credentials from your Bitbucket Server instance. Bitbucket Server supports Basic Authentication using either a username and password combination or a personal API key.
To use Bitbucket Server with Nexla, you need:
Access to your Bitbucket Server instance
A Bitbucket Server account with appropriate permissions to access the projects and repositories you want to work with
Either your username and password, or a personal API key
Personal API keys can be created in your Bitbucket Server account settings. API keys provide a secure alternative to using passwords and can be revoked independently if needed. For detailed information about Bitbucket Server authentication and API key creation, refer to the Bitbucket Server REST API documentation.
The complete URL of your Bitbucket Server instance, including the https:// protocol but without a trailing slash (e.g., https://bitbucket.example.com).
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
New Credential Overlay – Bitbucket Server
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the base URL of your Bitbucket Server instance in the Base URL for Bitbucket Server field. This should be the complete URL of your Bitbucket Server instance, including the protocol (https://) but without any trailing slashes. For example: https://bitbucket.example.com.
Enter your Bitbucket Server username or personal API key in the Username Or API Key field. You can use either your Bitbucket Server username or a personal API key for authentication.
Enter your Bitbucket Server password in the Password field. If you are using a personal API key as the username, enter the API key value in this field as well. If you are using your username, enter your Bitbucket Server account password.
Keep your authentication credentials secure and do not share them publicly. The credentials provide access to your Bitbucket Server instance and should be treated as sensitive information. Personal API keys are recommended over passwords as they can be revoked independently and provide better security.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Bitbucket Server connector tile, then select the credential that will be used to connect to the Bitbucket Server instance, and click Next; or, create a new Bitbucket Server credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Bitbucket Server endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
Get top-level entities
This endpoint retrieves top-level entities from your Bitbucket Server instance, including SSH keys, projects, and pull requests. Use this endpoint when you need to access high-level information about your Bitbucket Server account.
Select the entity type you want to retrieve from the Entity Type dropdown menu. Available options include:
Retrieve user's SSH keys: Get SSH keys for the authenticated user (/rest/ssh/latest/keys)
Get projects: Retrieve projects that the user has access to (/rest/api/latest/projects)
Get user's pull requests: Retrieve all pull requests that the user has access to (/rest/api/latest/dashboard/pull-requests)
This field is optional. If not specified, the endpoint will use the default entity type.
The endpoint uses GET requests to {base_url}/rest/{entity_type} where {base_url} is your Bitbucket Server base URL from the credential configuration and {entity_type} is the selected entity type. The endpoint URL is automatically constructed based on your credential's base URL configuration and the selected entity type.
The endpoint uses offset-based pagination, automatically fetching additional pages as needed using the start and limit query parameters. The endpoint starts from offset 0 and continues fetching pages until all available entities have been retrieved. By default, the endpoint retrieves up to 100 items per page.
The endpoint will return all entities of the selected type. The response data is extracted from the values array in the API response ($.values), with each entity record processed individually.
This endpoint supports pagination through start and limit query parameters. Nexla automatically handles pagination to retrieve all available records by incrementing the offset until no more data is returned. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset), starting from offset 0. By default, the endpoint retrieves up to 100 items per page (page.expected.rows: 100). The response data path is $.values, which extracts all items from the values array in the API response. For detailed information about retrieving top-level entities, see the Bitbucket Server REST API documentation.
Get repositories
This endpoint retrieves a list of all repositories accessible by the authenticated user. Use this endpoint when you need to access repository information across all projects in your Bitbucket Server instance.
This endpoint automatically retrieves all repositories accessible to the authenticated user. No additional configuration is required beyond selecting this endpoint template.
The endpoint uses GET requests to {base_url}/rest/api/latest/repos where {base_url} is your Bitbucket Server base URL from the credential configuration. The endpoint URL is automatically constructed based on your credential's base URL configuration.
The endpoint uses offset-based pagination, automatically fetching additional pages as needed using the start and limit query parameters. The endpoint starts from offset 0 and continues fetching pages until all available repositories have been retrieved. By default, the endpoint retrieves up to 100 items per page.
The endpoint will return all repositories accessible to the authenticated user. The response data is extracted from the values array in the API response ($.values), with each repository record processed individually.
This endpoint supports pagination through start and limit query parameters. Nexla automatically handles pagination to retrieve all available records by incrementing the offset until no more data is returned. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset), starting from offset 0. By default, the endpoint retrieves up to 100 items per page (page.expected.rows: 100). The response data path is $.values, which extracts all items from the values array in the API response. For detailed information about retrieving repositories, see the Bitbucket Server REST API documentation.
Get project repos
This endpoint retrieves a list of repositories within a specific project. Use this endpoint when you need to access repository information for a particular project in your Bitbucket Server instance.
Enter the project key in the Project key field. This is the unique identifier (key) of the project for which you want to retrieve repositories. Project keys are typically short, uppercase identifiers like "PROJ" or "MYPROJECT".
The endpoint uses GET requests to {base_url}/rest/api/latest/projects/{projectKey}/repos where {base_url} is your Bitbucket Server base URL from the credential configuration and {projectKey} is the project key you provide. The endpoint URL is automatically constructed based on your credential's base URL configuration and the project key.
The endpoint uses offset-based pagination, automatically fetching additional pages as needed using the start and limit query parameters. The endpoint starts from offset 0 and continues fetching pages until all available repositories have been retrieved. By default, the endpoint retrieves up to 100 items per page.
The endpoint will return all repositories within the specified project. The response data is extracted from the values array in the API response ($.values), with each repository record processed individually.
Project keys can be obtained from the "Get top-level entities" endpoint by selecting "Get projects" as the entity type, which returns all projects with their corresponding keys. This endpoint supports pagination through start and limit query parameters. Nexla automatically handles pagination to retrieve all available records by incrementing the offset until no more data is returned. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset), starting from offset 0. By default, the endpoint retrieves up to 100 items per page (page.expected.rows: 100). The response data path is $.values, which extracts all items from the values array in the API response. For detailed information about retrieving project repositories, see the Bitbucket Server REST API documentation.
Get entities related to a repo
This endpoint retrieves entities within a specific repository, including files, commits, pull requests, and branches. Use this endpoint when you need to access detailed repository information for a particular repository.
Enter the project key in the Project key field. This is the unique identifier (key) of the project that contains the repository. Project keys are typically short, uppercase identifiers like "PROJ" or "MYPROJECT".
Enter the repository slug in the Repository URL slug field. This is the URL-friendly identifier of the repository within the project. Repository slugs are typically lowercase identifiers that match the repository name.
Select the entity type you want to retrieve from the Entity type within repository dropdown menu. Available options include:
Files: Retrieve files in the repository (default)
Commits: Retrieve commit history
Pull-requests: Retrieve pull requests
Branches: Retrieve branches
The default value is files if not specified.
The endpoint uses GET requests to {base_url}/rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/{repoEntityType} where {base_url} is your Bitbucket Server base URL from the credential configuration, {projectKey} is the project key, {repositorySlug} is the repository slug, and {repoEntityType} is the selected entity type. The endpoint URL is automatically constructed based on your credential's base URL configuration and the provided parameters.
The endpoint uses offset-based pagination, automatically fetching additional pages as needed using the start and limit query parameters. The endpoint starts from offset 0 and continues fetching pages until all available entities have been retrieved. By default, the endpoint retrieves up to 100 items per page.
The endpoint will return all entities of the selected type within the specified repository. The response data is extracted from the values array in the API response ($.values), with each entity record processed individually.
Project keys and repository slugs can be obtained from the "Get project repos" endpoint, which returns all repositories within a project with their corresponding project keys and repository slugs. This endpoint supports pagination through start and limit query parameters. Nexla automatically handles pagination to retrieve all available records by incrementing the offset until no more data is returned. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset), starting from offset 0. By default, the endpoint retrieves up to 100 items per page (page.expected.rows: 100). The response data path is $.values, which extracts all items from the values array in the API response. For detailed information about retrieving repository entities, see the Bitbucket Server REST API documentation.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Bitbucket Server data sources can also be manually configured to ingest data from any valid Bitbucket Server REST API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, path to data, metadata, and request headers.
Bitbucket Server API endpoints follow the pattern {base_url}/rest/api/latest/{endpoint_path}, where {base_url} is the base URL from your credential configuration, and Basic Authentication is handled automatically by your credential. Bitbucket Server responses typically wrap records in a values array, so set the Path to Data to $.values[*] to extract each record. For detailed information about available endpoints, see the Bitbucket Server REST API documentation.
Once all of the relevant settings have been configured, click the Save button to save and create the new Bitbucket Server data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.