API load testing

API load testing from simple API hammering to complex API user scenarios.

Performance challenges

Anticipating how resources will be manipulated as well as retrieved via an API requires skillful planning. API performance is affected by server availability, response times, network latency and throughput. Each of these require a different level of optimization work if found to be the source of poor performance.


Maintaining API performance with the increasing rate of code deployment is important to stay within boundaries of Service Level Agreements (SLAs). Load testing code before deploying it to production should not have to be hard.

With our solution

Application availability

Guarantee that resources exposed by your API can be Created, Read, Updated and Deleted appropriately under expected, as well as unexpected, load.


Validate application and infrastructure scalability and measure end user performance.


Ensure the response times experienced by your API users are acceptable and within the boundaries of Service Level Agreements (SLAs).


Establish a long-term baseline for your API performance on which to validate the impact (good and bad) of code and infrastructure changes over time. Read more about performance trending.

Failure cases

Determine your maximum capacity, through stress testing, in order to understand which components fail first, in what order and what the nature of that failure is.

Powerful API scripting features

Full programming language

Use the simple yet powerful Lua programming language to create advanced scenarios that include complex flows, randomized and parameterized requests as well as HTTP basic, HTTP digest, token or NTLM based authentication.

Full CRUD support

Send requests with any of the HTTP methods/verbs. GET, POST, PUT, DELETE, PATCH, OPTION and TRACE, they are all supported.


Whether you are doing SOAP or REST API load testing we got you covered, with APIs to serialize/deserialize JSON as well as XML data.

Custom metrics

Save custom metrics to aid result analysis or to setup pass/fail criteria using thresholds to open up the door for automated load testing with CI/CD tools and services.

For more information see our scripting introduction and the load script API reference documentation.


local ds = datastore.open("users")
local row = ds:get_random()

local r = http.post{
    headers={ ["Content-Type"]="application/json" },
    data=json.stringify({["email"]=row[1], ["password"]=row[2]}),
if r.status_code ~= 200 then
    result.custom_metric("login.failure", 1)
    if test.get_clients() == 1 then

result.custom_metric("login.time_to_first_byte", r.time_to_first_byte)

local data = json.parse(r.body)
r = http.get{
    headers={ ["Authorization"]="Token "..data.token.key }

client.sleep(math.random(10, 20))

Already using Postman?

Use Load Impact's conversion tool for Postman to load test your Postman API collections

Automated load testing

Three essentials for automated performance testing

Goal oriented

We believe load testing should be goal-oriented and want to make it as easy as possible for you to achieve that. By setting up thresholds in your test configuration your tests will be automatically failed when those thresholds are overrun.

CLI for easy integration

We also believe in the practice of continuous load testing. To that end we created a CLI that makes it easy to integrate load testing with your CI tool/service of choice.


To stay completely out of your way, when your tests finish, we can notify you in Slack, HipChat or via Webhook. Be the first to know if your tests fail!

Check out our CI integration guides