BrowserStack BrowserStack Automate REST API .NET Client



This repository contains a .NET client library/NuGet package for the BrowserStack Automate REST API.

Features include:

The assembly supports .NET Core (via .NET Standard 1.3) and .NET Framework 4.5.1.


Install-Package MartinCostello.BrowserStack.Automate

Usage Examples

The following example shows a custom [Trait] that checks for an available BrowserStack Automate session before running the test, otherwise it is skipped.

namespace MyApp.Tests
    using System;
    using System.Configuration;
    using MartinCostello.BrowserStack.Automate;
    using Xunit;

    [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
    public sealed class RequiresBrowserStackAutomateAttribute : FactAttribute
        public RequiresBrowserStackAutomateAttribute()
            string userName = Environment.GetEnvironmentVariable("BrowserStack_UserName");
            string accessKey = Environment.GetEnvironmentVariable("BrowserStack_AccessKey");

            var client = new BrowserStackAutomateClient(userName, accessKey);
            var plan = client.GetStatusAsync().Result;

            if (plan.MaximumAllowedParallelSessions < 1 ||
                plan.ParallelSessionsRunning == plan.MaximumAllowedParallelSessions)
                Skip = "No BrowserStack Automate sessions are currently available.";


Any feedback or issues can be added to the issues for this project in GitHub.


The repository is hosted in GitHub:


This project is licensed under the Apache 2.0 license.

Building and Testing

To build and test the assembly run one of the following set of commands:

Linux/OS X

EXPORT BrowserStack_UserName  = "MyUserName"
EXPORT BrowserStack_AccessKey = "MyAccessKey"


$env:BrowserStack_UserName  = "MyUserName"
$env:BrowserStack_AccessKey = "MyAccessKey"

If you do not have a BrowserStack Automate access key you can still just run the build script and the integration tests that require credentials will be skipped.