BERRY LANGUAGE · OPEN BETA

One Simple Syntax.
Three Ways to Run.

Flexiberry is the developer-first HTTP client built for sequential request chains. Stop writing heavy boilerplate scripts. Define your workflows in readable .berry code and execute them anywhere.

terminal — flexiberry run
$ flexiberry run auth.berry
Loading script and initializing environment...
RUN Step 1: User Authentication
✔ POST /api/v1/auth/login 200 OK (38ms)
✔ Captured variable token
RUN Step 2: Fetch Account Profile
✔ GET /api/v1/user/profile 200 OK (22ms)
✔ Assertion check $.status == 200 passed
✔ Success: All tasks completed successfully in 60ms.

API Testing shouldn't require
writing an entire automation app

The Pain: Scripting Overload

Most API clients require writing custom Javascript wrappers and environment getters/setters just to pass an ID or token to the next request.

postman-scripts.js
// JavaScript Boilerplate
const response = pm.response.json();
pm.environment.set("token", response.token);
pm.test("Status is 200", function() {
  pm.response.to.have.status(200);
});

This results in bloated test scripts, broken environment variable syncs, and tests that are impossible to review in Git.

Our Solution: Declarative Chaining

Flexiberry uses the human-readable .berry syntax to describe requests, captures, and assertions out-of-the-box.

auth-flow.berry
# Native Chaining in Task Steps
Step Call Api login
  Capture
    - token: response.token
  Check
    - $.status == 200

Zero dependencies, zero boilerplates. Variables are dynamically bound and passed down the execution chain automatically.

Interactive Demo

See Flexiberry in action

flexiberry-demo.mp4

Key Features for
Sequential API Workflows

Flexiberry strips away the bloat and provides a lightning fast environment tailored for multi-API journeys.

Chaining

Seamless Chaining

Extract headers, cookies, or body fields from one response and inject them into subsequent API requests natively.

Capture
- token: response.token

Header
- Authorization: 'Bearer {{token}}'
DSL

Readable DSL Syntax

Write HTTP requests, variable declarations, and expectations in a structured, domain-specific script language.

Api POST #createUser
Url "{{Config.baseUrl}}/users"
Header
- Content-Type: 'application/json'
Engine

Dual-Purpose Engine

Draft single scratchpad endpoints during development or run complex test runner flows with assertions.

# Execute tasks or single endpoint APIs
flexiberry run user.berry --api createUser
CI/CD

CI/CD Automations

Lightweight, zero-dependency engine. Run your tests in local shells or trigger them in GitHub Actions workflows.

# GitHub Actions runner configuration
- run: npx flexiberry run flow.berry
Environments

Environment Configs

Manage endpoints dynamically by swapping local dev, staging, or production env files without changing files.

Var @PROD Production Config
- baseUrl: 'https://api.flexiberry.dev'

Who is Flexiberry For?

Backend Developers

A lightweight, CLI-first client to scratchpad daily endpoints and test stateful chains without leaving the terminal.

QA & Test Engineers

A git-friendly, text-based test suite that version controls cleanly, integrates natively in CI, and speeds up validations.

Product Teams

A transparent, human-readable way to model and verify core user integration stories (e.g. signup ➔ login ➔ profile).

Open Beta

Ready to unlock
frictionless workflows?

Flexiberry is 100% open-source and community-driven. Take control of your API endpoints today.

$ npm install -g flexiberry

Free forever · Open source · MIT License