← All comparisons

A maintained Dredd alternative

Short answer

Dredd’s repository was archived on 8 November 2024 and its last release (14.1.0) dates from November 2021, so it no longer receives fixes. If you validate an API against its OpenAPI 3 description in CI, Portman covers the same job, adds response-time limits, content tests and variation tests, and is actively maintained. If you rely on API Blueprint, Portman is not a drop-in replacement because it only reads OpenAPI 3.0 and 3.1.

About Dredd

Dredd is a language-agnostic CLI by Apiary that validates an API implementation against its API Blueprint or OpenAPI 2 description, with experimental OpenAPI 3 support. It runs each documented request and compares the response, with setup and teardown hooks in Go, Node.js, Perl, PHP, Python, Ruby and Rust. The MIT-licensed repository was archived on 8 November 2024.

Feature comparison

portman-vs-dredd.md
CapabilityPortmanDredd
ApproachGenerates a Postman collection with tests from the specRuns each documented request and compares the response
Spec inputOpenAPI 3.0 and 3.1API Blueprint, OpenAPI 2; OpenAPI 3 experimental
Output and runtimePostman collection (JSON), run with NewmanNode.js CLI, runs tests directly
Response schema validationYes — JSON Schema test per responseYes — validates against the description
Headers and response timeYes — headersPresent and responseTime testsHeaders in the description must be present; content-negotiation values compared
Fuzzing and negative testingPartial — rule-based fuzzing and variation testsNo
Stateful tests and chainingConfigured — assignVariables and overwritesVia hooks code
Custom logicPre-request scripts and extendTests (JavaScript)Hooks in seven languages
CI usage and exit codesExit code 1 on any failed assertionCLI used in CI
MCP / AI agent supportNo MCP server; Apideck agent skill availableNo
License and statusApache 2.0, maintainedMIT, archived Nov 2024; last release Nov 2021
choose-dredd.md

Choose Dredd if…

  • Your API description is in API Blueprint and you are not planning to move to OpenAPI.
  • Your existing Dredd setup works, depends on hooks in a language other than JavaScript, and you accept running unmaintained software.
choose-portman.md

Choose Portman if…

  • You describe your API in OpenAPI 3.0 or 3.1 and want a maintained tool to test against it in CI.
  • You want schema, header, content-type and response-time checks generated per operation.
  • You want variation tests and fuzzing for error responses, not only the documented happy path.
  • You want the tests as a Postman collection your team can open and debug.

Migrating from Dredd

Moving from Dredd to Portman means pointing Portman at your OpenAPI document, recreating hook logic as Portman configuration, and replacing the Dredd step in CI.

  1. Make sure your API description is OpenAPI 3.0 or 3.1. Portman does not read API Blueprint or OpenAPI 2 (Swagger), so convert those first.
  2. Generate a first collection with default contract tests: npx @apideck/portman -l openapi.yaml -b http://localhost:3000 -o tmp/collection.json
  3. Create a portman-config.json and pass it with -c. Enable the contract tests you need (statusSuccess, contentType, jsonBody, schemaValidation, headersPresent, responseTime).
  4. Replace Dredd hooks that pass IDs between transactions with assignVariables (capture a value from a response) and overwrites (use it in later requests).
  5. Replace other hook logic with pre-request scripts or extendTests, which accept Postman JavaScript.
  6. Keep secrets out of the config: export them as PORTMAN_* environment variables (or use --envFile) and reference the camel-cased Postman variable.
  7. Run the tests with --runNewman and swap the Dredd step in CI for the Portman command. Portman exits with code 1 on any failed assertion, so the job fails as it did with Dredd.
  8. Optionally move the flags into a file and run portman --cliOptionsFile portman-cli-options.json.

Try Portman on your spec

Quickstart
Verified against public sources on 2026-10-31. Spotted something outdated? Open an issue.