Bruno website screenshot

Bruno

Bruno is an open-source (MIT), git-native API client - a lightweight, offline-first alternative to Postman and Insomnia for exploring and testing APIs. It is a developer TOOL, not a hosted HTTP API provider. Collections are stored on the local filesystem as folders of plain-text files (the .bru "Bru" markup language, with OpenCollection YAML now recommended for new collections), so API requests are version-controlled in Git alongside code. Bruno sends HTTP, REST, GraphQL, and gRPC requests, manages environments and variables, and runs pre-request/post-response scripts, tests, and assertions. The @usebruno/cli command-line runner (bru) executes collections headlessly in CI/CD with JSON, JUnit, and HTML reporters. Bruno is offline-only and does not sync request data to a Bruno-hosted cloud; paid Pro/Ultimate tiers add native in-app Git integration, OpenAPI sync, and enterprise admin controls that run through your own Git provider and identity systems. Bruno does not expose a documented public REST HTTP API.

Bruno publishes 6 APIs on the APIs.io network. Tagged areas include API Client, API Testing, Developer Tools, Open Source, and Git-Native.

Bruno’s developer surface includes documentation, engineering blog, CLI, changelog, release notes, getting-started guide, pricing, and 29 more developer resources.

51.9/100 developing ▬ flat Agent 10/100 agent aware Front door AI 6/6 dominant open core · MIT Full breakdown ↓
scored 2026-09-25 · rubric v0.23.0
AccessFreemiumFree trial
3 APIs3 Not an API 1 MCP Servers
API ClientAPI TestingDeveloper ToolsOpen SourceGit-NativeCLIPostman AlternativeA2ATesting

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-09-25 · rubric v0.23.0
Regulatory Posture applies to this provider. Its tags matched the Horizontal (data, software, accessibility, platform) regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero: never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and several others — scorable at all.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from github.com/api-evangelist/bruno-api: open an issue to ask a question, or submit a pull request to add artifacts. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

What adopting Bruno moves on the Kin Score 5

Bruno is an area vendor: providers adopt it to run part of their developer surface. This is the Kin Score checks its features can move for a provider that adopts it, what each one really earns, and what it earns nothing for.

api collectionscapability map6 features checked 2026-09-25 · rubric v0.22.0

Bruno hosts nothing for a provider, so every point it can move is a file the provider exports and publishes itself. Exported as a Postman collection it can earn postman_present as the provider’s own work; exported as OpenAPI it can create a contract where only a collection existed; generated as HTML docs and deployed on the provider’s site it can earn documentation and console pointers. A native .bru or OpenCollection repo earns nothing on its own, and Bruno’s mock servers are local-only.

Contract Quality23.0 of 211 pts
Developer Ergonomics9.0 of 42 pts
CheckEarnsThrough
Publishes a machine-readable contractsaturated
Contract Quality95% of providers with a contract, docs and a reference already earn this; the vendor cannot move it for most of its buyers.
20.0 of 20 Export to OpenAPI Specification
Documentationsaturated
Developer Ergonomics95% of providers with a contract, docs and a reference already earn this; the vendor cannot move it for most of its buyers.
4.0 of 4 Generated HTML documentation
Console or sandbox
Developer ErgonomicsDeploy the generated docs and declare the page as Console or Playground in apis.yml.
3.0 of 3 Interactive playground in the generated docs
Postman collection
Developer ErgonomicsThe provider authored the requests; the export changes the format, not the authorship. A collection someone else exported from the provider’s spec is derived (0.25).
2.0 of 2 Export as Postman Collection
OpenAPI 3.0conditional
Contract QualityThe export page says “OpenAPI Specification (OAS) V3” without a minor version; credit only if the file declares 3.0.x.
3.0 of 3 Export to OpenAPI Specification
Across 8977 providers that publish a contract, adopting Bruno would move 8828. Median lift: composite +2.4 (90th percentile +4.2), agent readiness +0.0 (+0.0). Conditional rows excluded.
What Bruno ships that earns nothing (2)
  • Git-native collections and the Fetch in Bruno button — A .bru / OpenCollection repo, or a Fetch in Bruno button, is not a Postman collection; the check reads Postman-typed pointers only.
  • Mock servers (beta) — Bruno mocks listen on localhost on the user’s machine; nothing public exists to declare as a Sandbox.

A model, not a score. Adopting this vendor changes a provider's Kin Score only when the provider publishes the resulting artifacts on its own surface; nothing here writes a score, and no sponsorship or partnership can. The rating is not for sale → · Full vendor facets artifact

Standards implemented 1

Interfaces this provider implements that became standards by being copied rather than ratified. Each is profiled by the API Commons, and the evidence column says how the claim was established — not that it was made.

prose — states compatibility; nothing published to check it against
5 core of 24 operations graded · api-commons/identity

APIs 6

Individual APIs this provider publishes. MODELED: a real API behind a partner or contract gate; there is no public reference, so API Evangelist drew its shape. NOT AN API: a product area with no API behind it, not counted.

Bruno API Client

The core open-source, git-native desktop API client (a lightweight Postman/Insomnia alternative). Compose and send HTTP, REST, GraphQL, and gRPC requests, organize them into col...

Bru Markup Language (.bru)

Bru is Bruno's plain-text domain-specific markup language. Each request is stored as a .bru file capturing the HTTP method, URL, query params, headers, body, authentication, scr...

NOT AN API

OpenCollection Format

OpenCollection is the open, YAML-based collection format Bruno now recommends for new collections as an alternative representation to .bru. Like .bru it stores requests, folders...

NOT AN API

Bruno CLI (bru)

The @usebruno/cli command-line runner (invoked as bru, installed via npm install -g @usebruno/cli) executes individual requests or entire collections headlessly for CI/CD, with ...

Bruno Git Integration and Sync

Paid Bruno (Pro and Ultimate) adds native in-app Git integration and OpenAPI sync (5 syncs/month on Pro, unlimited on Ultimate) plus SSO, SCIM, audit logs, and license/admin con...

NOT AN API

Bruno API Client

Bruno is an open-source API client for exploring and testing REST, GraphQL, and gRPC APIs. Collections are stored as plain text Bru files on the filesystem, enabling Git-based v...

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

Bruno MCP surfaces

Bruno ships TWO distinct, first-party MCP surfaces, and they are not interchangeable. (1) A REMOTE, unauthenticated HTTP MCP server on Bruno's own documentation host that any ag...

MCP SERVER

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Bruno Api Rate Limits

5 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Bruno Api Domain Security

TLSv1.2 · HSTS · DMARC

SECURITY

Bruno Api Trust Center

SOC 2 Type I

SECURITY

Resources

Get Started 3

Portal, sign-up, and the first successful call

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 4

SDKs, sample code, and the tooling you integrate with

Access & Security 5

Authentication, authorization, and security posture

Operate 6

Status, limits, changes, and where to get help

Commercial 5

Pricing, plans, and the legal terms of use

Company 4

The organization behind the API

Other 2

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: bruno-api
url: https://raw.githubusercontent.com/api-evangelist/bruno-api/refs/heads/main/apis.yml
name: Bruno
kind: company
description: Bruno is an open-source (MIT), git-native API client - a lightweight, offline-first alternative to Postman and
  Insomnia for exploring and testing APIs. It is a developer TOOL, not a hosted HTTP API provider. Collections are stored
  on the local filesystem as folders of plain-text files (the .bru "Bru" markup language, with OpenCollection YAML now recommended
  for new collections), so API requests are version-controlled in Git alongside code. Bruno sends HTTP, REST, GraphQL, and
  gRPC requests, manages environments and variables, and runs pre-request/post-response scripts, tests, and assertions. The
  @usebruno/cli command-line runner (bru) executes collections headlessly in CI/CD with JSON, JUnit, and HTML reporters. Bruno
  is offline-only and does not sync request data to a Bruno-hosted cloud; paid Pro/Ultimate tiers add native in-app Git integration,
  OpenAPI sync, and enterprise admin controls that run through your own Git provider and identity systems. Bruno does not
  expose a documented public REST HTTP API.
deliveryModel:
  model: open-core
  license: MIT
  license_evidence:
    repo: usebruno/bruno
    spdx: MIT
    stars: 47189
  open_source: true
  commercial: true
  callable_host: false
  label: Open core · an OSS project plus a commercial hosted product
  confidence: medium
  source:
  - pricing
  - repository-license
  generated: '2026-09-25'
  method: derived
accessModel:
  pricing: freemium
  onboarding: unknown
  trial: true
  try_now: false
  public: false
  label: Freemium (free trial)
  confidence: medium
  source:
  - plans
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/bruno-api.png
x-docs-platform: mintlify
x-docs-platform-confidence: medium
x-docs-platform-checked: 2026-09-21
x-docs-hosting: vercel
tags:
- API Client
- API Testing
- Developer Tools
- Open Source
- Git-Native
- CLI
- Postman Alternative
- A2A
- Testing
tags_raw:
- API Client
- API Testing
- Developer Tools
- Open Source
- Git-Native
- CLI
- Postman Alternative
- Open-Source
- A2A
- Testing
created: '2026-07-11'
modified: '2026-09-18'
specificationVersion: '0.23'
apis:
- aid: bruno-api:bruno-api-client
  name: Bruno API Client
  tags:
  - API Client
  - API Testing
  - Developer Tools
  - REST
  - GraphQL
  - gRPC
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  humanURL: https://docs.usebruno.com/introduction/what-is-bruno
  properties:
  - url: https://docs.usebruno.com/
    type: Documentation
  - url: https://github.com/usebruno/bruno
    type: SourceCode
  description: The core open-source, git-native desktop API client (a lightweight Postman/Insomnia alternative). Compose and
    send HTTP, REST, GraphQL, and gRPC requests, organize them into collections, manage environments and variables, and write
    pre-request/post-response scripts plus tests and assertions. Offline-only with no cloud sync of request data. This is
    a client application, not a hosted API - it has no baseURL or public HTTP endpoints of its own.
- aid: bruno-api:bruno-bru-language
  x-published: false
  name: Bru Markup Language (.bru)
  tags:
  - File Format
  - Collection
  - Git-Native
  - Open Source
  tags_raw:
  - File Format
  - Collections
  - Git-Native
  - Open Source
  - Open-Source
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  humanURL: https://docs.usebruno.com/bru-lang/overview
  properties:
  - url: https://docs.usebruno.com/bru-lang/overview
    type: Documentation
  - url: https://github.com/usebruno/bruno
    type: SourceCode
  description: Bru is Bruno's plain-text domain-specific markup language. Each request is stored as a .bru file capturing
    the HTTP method, URL, query params, headers, body, authentication, scripts, tests, assertions, and variables, so a collection
    is a folder of human-readable text files reviewable in Git pull requests. A logical artifact/file format modeled as a
    capability area - not an HTTP endpoint.
- aid: bruno-api:bruno-opencollection
  x-published: false
  name: OpenCollection Format
  tags:
  - Collection
  - Open Standard
  - YAML
  - Portability
  tags_raw:
  - Collections
  - Open Standard
  - YAML
  - Portability
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  humanURL: https://docs.usebruno.com/
  properties:
  - url: https://docs.usebruno.com/
    type: Documentation
  description: OpenCollection is the open, YAML-based collection format Bruno now recommends for new collections as an alternative
    representation to .bru. Like .bru it stores requests, folders, auth, and scripts as version-friendly text. A file/interchange
    format modeled as a capability area - not a hosted API surface.
- aid: bruno-api:bruno-cli
  name: Bruno CLI (bru)
  tags:
  - CLI
  - API Testing
  - CI/CD
  - Automation
  - Developer Tools
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  humanURL: https://docs.usebruno.com/bru-cli/overview
  properties:
  - url: https://docs.usebruno.com/bru-cli/overview
    type: Documentation
  - url: https://github.com/usebruno/bruno
    type: SourceCode
  description: The @usebruno/cli command-line runner (invoked as bru, installed via npm install -g @usebruno/cli) executes
    individual requests or entire collections headlessly for CI/CD, with JSON, JUnit, and HTML test reporters, environment
    selection, and assertions. Since v3.0.0 it defaults to Safe Mode for security; Developer Mode features (filesystem access,
    external npm packages) require the --sandbox=developer flag. A local CLI tool, not a hosted API.
- aid: bruno-api:bruno-git-collaboration
  x-published: false
  name: Bruno Git Integration and Sync
  tags:
  - Git
  - Collaboration
  - Sync
  - Enterprise
  - Developer Tools
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  humanURL: https://www.usebruno.com/pricing
  properties:
  - url: https://www.usebruno.com/pricing
    type: Pricing
  - url: https://docs.usebruno.com/
    type: Documentation
  description: Paid Bruno (Pro and Ultimate) adds native in-app Git integration and OpenAPI sync (5 syncs/month on Pro, unlimited
    on Ultimate) plus SSO, SCIM, audit logs, and license/admin controls. Collaboration happens through your own Git provider
    and identity systems - Bruno stays offline-only and does not sync request data to a Bruno-hosted cloud. Modeled here as
    a capability area; it is not a documented public API.
- aid: bruno-api:api-client
  name: Bruno API Client
  image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
  description: Bruno is an open-source API client for exploring and testing REST, GraphQL, and gRPC APIs. Collections are
    stored as plain text Bru files on the filesystem, enabling Git-based version control, team collaboration through pull
    requests, and co-location with application code. Bruno supports JavaScript scripting, environment variables, collection-level
    authentication, and CI/CD execution via Bruno CLI. No cloud account required.
  humanURL: https://www.usebruno.com
  tags:
  - API Client
  - API Testing
  - Git-Native
  - GraphQL
  - gRPC
  - Open Source
  - REST
  tags_raw:
  - API Client
  - API Testing
  - Git-Native
  - GraphQL
  - gRPC
  - Open Source
  - REST
  - Open-Source
  properties:
  - type: Documentation
    url: https://docs.usebruno.com
  - type: GettingStarted
    url: https://docs.usebruno.com
  - type: GitHubRepository
    url: https://github.com/usebruno/bruno
  - type: License
    url: https://github.com/usebruno/bruno/blob/main/license.md
  - type: Downloads
    url: https://www.usebruno.com/downloads
  - type: Pricing
    url: https://www.usebruno.com/pricing
common:
- type: VendorFacets
  url: vendor-facets/bruno-api-vendor-facets.yml
- type: TrustCenter
  url: security/bruno-api-trust-center.yml
- type: DomainSecurity
  url: security/bruno-api-domain-security.yml
- type: LinkedIn
  url: https://www.linkedin.com/company/usebruno
- type: Website
  url: https://www.usebruno.com/
- type: Documentation
  url: https://docs.usebruno.com/
- type: GitHubOrganization
  url: https://github.com/usebruno
- type: Plans
  url: plans/bruno-api-plans-pricing.yml
- type: RateLimits
  url: rate-limits/bruno-api-rate-limits.yml
- type: FinOps
  url: finops/bruno-api-finops.yml
- url: https://blog.usebruno.com/
  type: Blog
- type: Blog
  url: https://www.usebruno.com/blog
- type: AgentCard
  url: a2a/bruno-api-a2a.yml
- type: MCPServer
  url: mcp/bruno-api-mcp.yml
- type: WellKnown
  url: well-known/bruno-api-well-known.yml
- type: LLMsTxt
  url: llms/bruno-api-llms.txt
- type: AgentSkill
  url: skills/_index.yml
- type: Packages
  url: packages/bruno-api-packages.yml
- type: SDKs
  url: packages/bruno-api-packages.yml
- type: CLI
  url: cli/bruno-api-cli.yml
- type: ChangeLog
  url: changelog/bruno-api-changelog.yml
- type: ReleaseNotes
  url: https://www.usebruno.com/changelog
- type: Lifecycle
  url: lifecycle/bruno-api-lifecycle.yml
- type: Conformance
  url: conformance/bruno-api-conformance.yml
- type: Compliance
  url: security/bruno-api-trust-center.yml
- type: Security
  url: security/bruno-api-vulnerability-disclosure.yml
- type: VulnerabilityDisclosure
  url: security/bruno-api-vulnerability-disclosure.yml
- type: DeveloperPortal
  url: https://docs.usebruno.com/
- type: GettingStarted
  url: https://docs.usebruno.com/introduction/getting-started
- type: Pricing
  url: https://www.usebruno.com/pricing
- type: SignUp
  url: https://www.usebruno.com/start-trial
- type: Support
  url: https://www.usebruno.com/support
- type: Community
  url: https://www.usebruno.com/community
- type: Roadmap
  url: https://www.usebruno.com/roadmap
- type: TermsOfService
  url: https://www.usebruno.com/terms
- type: PrivacyPolicy
  url: https://www.usebruno.com/privacy-policy
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
x-enrichment:
  date: '2026-09-18'
  status: enriched
  artifacts_added: 17
  pass: local-v3

Work with this as data

Every provider here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/bruno-api"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/bruno-api/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/bruno-api/evidence"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.