Ambassador website screenshot

Ambassador

Ambassador is a Kubernetes-native API Gateway built on Envoy Proxy, providing routing, load balancing, authentication, and observability for microservices.

6 APIs 7 Features
API DevelopmentGatewaysIngressKubernetesMock ServersMocksPlatformTesting

APIs

Ambassador

Ambassador offers a suite of products designed to deliver API developer experiences that fuel innovation. These products, Blackbird API Development Platform, Edge Stack API Gate...

Ambassador Edge Stack API Gateway

Ambassador Edge Stack is a Kubernetes-native API gateway built on Envoy Proxy that provides routing, load balancing, authentication, rate limiting, and observability for microse...

Emissary-Ingress

Emissary-Ingress is an open-source, Kubernetes-native API gateway built on Envoy Proxy and a CNCF incubating project, formerly known as Ambassador API Gateway. It uses custom re...

Ambassador Telepresence RESTful API

Telepresence provides a RESTful API server that runs on the local host, both on the local workstation and in a pod that contains a traffic-agent. The API includes healthz, consu...

Ambassador Blackbird API Development Platform

Blackbird is an API development platform that helps developers design, build, test, and manage APIs with AI-powered code generation, mocking, and production-like test environmen...

Ambassador Edge Stack Developer Portal

The Ambassador Edge Stack Developer Portal automatically detects and publishes API documentation, serving as a single point of reference for all microservice APIs. It supports S...

Collections

Pricing Plans

Ambassador Plans Pricing

4 plans

PLANS

Rate Limits

Ambassador Rate Limits

2 limits

RATE LIMITS

FinOps

Features

Kubernetes-Native API Gateway

Purpose-built for Kubernetes with custom resource definitions (CRDs) for declarative configuration of routing, TLS, and rate limiting.

Envoy Proxy Foundation

Built on Envoy Proxy for high-performance load balancing, circuit breaking, and observability at the edge.

Authentication and Security

Integrated OAuth2, API key, and JWT-based authentication filters to secure API endpoints without custom code.

Rate Limiting

Configurable rate limiting with labels and descriptors to control request throughput to backend services.

Developer Portal

Automatic API documentation publishing from OpenAPI/Swagger specs with customizable developer portal for onboarding.

Local Development with Telepresence

Intercept and debug remote Kubernetes services locally using Telepresence for fast inner-loop development.

API Mocking with Blackbird

AI-powered API development platform with mock servers and production-like test environments for rapid iteration.

Use Cases

Microservices API Gateway

Route, secure, and observe traffic to microservices running in Kubernetes clusters.

API Development and Testing

Design, mock, and test APIs locally with Blackbird before deploying to Kubernetes environments.

Multi-Team API Management

Enable multiple teams to independently manage their API routing and configuration using Kubernetes CRDs.

Service Mesh Edge Gateway

Serve as the edge gateway in a service mesh architecture, handling north-south traffic with TLS termination.

Developer Onboarding

Provide a self-service developer portal for internal and external developers to discover and consume APIs.

Integrations

Kubernetes

Native integration with Kubernetes using CRDs for Mapping, Host, TLSContext, and RateLimit resources.

Envoy Proxy

Built on Envoy Proxy with full access to Envoy's load balancing, circuit breaking, and observability features.

Helm

Install and manage Ambassador Edge Stack using Helm charts for Kubernetes deployments.

Prometheus and Grafana

Export metrics to Prometheus and visualize API gateway performance in Grafana dashboards.

Cert-Manager

Automatic TLS certificate management via cert-manager and ACME protocol integration.

Semantic Vocabularies

Ambassador Context

0 classes · 0 properties

JSON-LD

API Governance Rules

Ambassador API Rules

7 rules · 7 errors

SPECTRAL

JSON Structure

Ambassador Circuit Breaker Structure

5 properties

JSON STRUCTURE

Ambassador Cors Policy Structure

6 properties

JSON STRUCTURE

Ambassador Diagnostics Overview Structure

5 properties

JSON STRUCTURE

Ambassador Host List Structure

4 properties

JSON STRUCTURE

Ambassador Host Spec Structure

7 properties

JSON STRUCTURE

Ambassador Host Status Structure

4 properties

JSON STRUCTURE

Ambassador Host Structure

2 properties

JSON STRUCTURE

Ambassador Load Balancer Structure

4 properties

JSON STRUCTURE

Ambassador Mapping List Structure

4 properties

JSON STRUCTURE

Ambassador Mapping Spec Structure

29 properties

JSON STRUCTURE

Ambassador Mapping Status Structure

2 properties

JSON STRUCTURE

Ambassador Mapping Structure

2 properties

JSON STRUCTURE

Ambassador Module List Structure

4 properties

JSON STRUCTURE

Ambassador Module Spec Structure

2 properties

JSON STRUCTURE

Ambassador Module Structure

2 properties

JSON STRUCTURE

Ambassador Object Meta Structure

8 properties

JSON STRUCTURE

Ambassador Rate Limit List Structure

4 properties

JSON STRUCTURE

Ambassador Rate Limit Rule Structure

4 properties

JSON STRUCTURE

Ambassador Rate Limit Spec Structure

2 properties

JSON STRUCTURE

Ambassador Rate Limit Structure

2 properties

JSON STRUCTURE

Ambassador Retry Policy Structure

3 properties

JSON STRUCTURE

Ambassador Structure

0 properties

JSON STRUCTURE

Ambassador Tls Context List Structure

4 properties

JSON STRUCTURE

Ambassador Tls Context Spec Structure

14 properties

JSON STRUCTURE

Ambassador Tls Context Structure

2 properties

JSON STRUCTURE

Example Payloads

Ambassador Gethost Example

6 fields

EXAMPLE

Ambassador Getmodule Example

6 fields

EXAMPLE

Ambassador Host Example

2 fields

EXAMPLE

Ambassador Host List Example

4 fields

EXAMPLE

Ambassador Host Spec Example

7 fields

EXAMPLE

Ambassador Listhosts Example

6 fields

EXAMPLE

Ambassador Mapping Example

2 fields

EXAMPLE

Ambassador Module Example

2 fields

EXAMPLE

Resources

🔗
Customers
Customers
💰
Pricing
Pricing
📰
Blog
Blog
💬
FAQ
FAQ
🔗
Documentation
Documentation
💬
Support
Support
🔗
Partners
Partners
🚀
GettingStarted
GettingStarted
👥
GitHubRepository
GitHubRepository
📄
ChangeLog
ChangeLog
🟢
StatusPage
StatusPage
🔑
Authentication
Authentication
🔗
RateLimits
RateLimits
🔗
X
X
🔗
LinkedIn
LinkedIn
📝
Signup
Signup
👥
GitHubRepository
GitHubRepository
👥
GitHubOrganization
GitHubOrganization
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Ambassador Edge Stack API
  version: 3.x
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Diagnostics
    type: folder
  items:
  - info:
      name: Ambassador Retrieve Diagnostic Overview
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/ambassador/v0/diag
    docs: Returns a comprehensive diagnostic overview of the Ambassador instance including active configuration, cluster state,
      Envoy status, and any configuration errors or warnings.
  - info:
      name: Ambassador Readiness Health Check
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/ambassador/v0/check_ready
    docs: Returns whether Ambassador is ready to serve traffic. Used by Kubernetes readiness probes.
  - info:
      name: Ambassador Liveness Health Check
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/ambassador/v0/check_alive
    docs: Returns whether the Ambassador process is alive. Used by Kubernetes liveness probes.
- info:
    name: Mappings
    type: folder
  items:
  - info:
      name: Ambassador List All Mappings in a Namespace
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: labelSelector
        value: app=my-service
        type: query
        description: Kubernetes label selector to filter resources
      - name: limit
        value: ''
        type: query
        description: Maximum number of resources to return
      - name: continue
        value: ''
        type: query
        description: Continuation token for paginated results
    docs: Returns a list of all Mapping resources in the specified Kubernetes namespace. Mappings associate URL prefixes or
      exact paths with backend services and configure routing behavior.
  - info:
      name: Ambassador Create a New Mapping
      type: http
    http:
      method: POST
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      body:
        type: json
        data: '{}'
    docs: Creates a new Mapping resource in the specified namespace. A Mapping defines how requests matching a URL prefix,
      path, or header should be routed to a backend service.
  - info:
      name: Ambassador Get a Specific Mapping
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Retrieves the full specification and status of a specific Mapping resource identified by name and namespace.
  - info:
      name: Ambassador Update a Mapping
      type: http
    http:
      method: PUT
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
      body:
        type: json
        data: '{}'
    docs: Replaces an existing Mapping resource with the provided specification. The full Mapping object must be provided.
  - info:
      name: Ambassador Delete a Mapping
      type: http
    http:
      method: DELETE
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Deletes a specific Mapping resource. Any traffic previously routed by this Mapping will no longer be handled.
- info:
    name: Hosts
    type: folder
  items:
  - info:
      name: Ambassador List All Hosts in a Namespace
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: labelSelector
        value: app=my-service
        type: query
        description: Kubernetes label selector to filter resources
      - name: limit
        value: ''
        type: query
        description: Maximum number of resources to return
      - name: continue
        value: ''
        type: query
        description: Continuation token for paginated results
    docs: Returns a list of all Host resources in the specified namespace. Hosts define how Ambassador should handle requests
      for specific hostnames, including TLS termination and ACME certificate provisioning.
  - info:
      name: Ambassador Create a New Host
      type: http
    http:
      method: POST
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      body:
        type: json
        data: '{}'
    docs: Creates a new Host resource in the specified namespace. A Host defines hostname routing, TLS termination behavior,
      and optionally configures ACME-based automatic certificate management.
  - info:
      name: Ambassador Get a Specific Host
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Retrieves the specification and status of a specific Host resource.
  - info:
      name: Ambassador Update a Host
      type: http
    http:
      method: PUT
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
      body:
        type: json
        data: '{}'
    docs: Replaces an existing Host resource with the provided specification.
  - info:
      name: Ambassador Delete a Host
      type: http
    http:
      method: DELETE
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Deletes a specific Host resource. TLS termination and hostname routing for this host will be removed.
- info:
    name: TLSContexts
    type: folder
  items:
  - info:
      name: Ambassador List All Tls Contexts in a Namespace
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: labelSelector
        value: app=my-service
        type: query
        description: Kubernetes label selector to filter resources
    docs: Returns a list of all TLSContext resources in the specified namespace. TLSContexts configure TLS settings such as
      certificates, protocols, and cipher suites.
  - info:
      name: Ambassador Create a New Tls Context
      type: http
    http:
      method: POST
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      body:
        type: json
        data: '{}'
    docs: Creates a new TLSContext resource specifying TLS certificates, protocol versions, and cipher suite configuration.
  - info:
      name: Ambassador Get a Specific Tls Context
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Retrieves the specification of a specific TLSContext resource.
  - info:
      name: Ambassador Update a Tls Context
      type: http
    http:
      method: PUT
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
      body:
        type: json
        data: '{}'
    docs: Replaces an existing TLSContext resource with the provided specification.
  - info:
      name: Ambassador Delete a Tls Context
      type: http
    http:
      method: DELETE
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Deletes a specific TLSContext resource.
- info:
    name: RateLimits
    type: folder
  items:
  - info:
      name: Ambassador List All Ratelimit Resources in a Namespace
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimits
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: labelSelector
        value: app=my-service
        type: query
        description: Kubernetes label selector to filter resources
    docs: Returns a list of all RateLimit resources in the specified namespace. RateLimits define rate limiting policies using
      labels and descriptors that control request throughput to backend services.
  - info:
      name: Ambassador Create a New Ratelimit
      type: http
    http:
      method: POST
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimits
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      body:
        type: json
        data: '{}'
    docs: Creates a new RateLimit resource in the specified namespace. RateLimits define rate limiting policies using domain,
      descriptors, and rate values to control traffic flow.
  - info:
      name: Ambassador Get a Specific Ratelimit
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimits/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Retrieves the specification of a specific RateLimit resource.
  - info:
      name: Ambassador Update a Ratelimit
      type: http
    http:
      method: PUT
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimits/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
      body:
        type: json
        data: '{}'
    docs: Replaces an existing RateLimit resource with the provided specification.
  - info:
      name: Ambassador Delete a Ratelimit
      type: http
    http:
      method: DELETE
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimits/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Deletes a specific RateLimit resource.
- info:
    name: Modules
    type: folder
  items:
  - info:
      name: Ambassador List All Modules in a Namespace
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/modules
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
    docs: Returns a list of all Module resources in the specified namespace. Modules configure global settings for Ambassador
      such as diagnostics, tracing, circuit breaking, and retry policies.
  - info:
      name: Ambassador Get a Specific Module
      type: http
    http:
      method: GET
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/modules/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
    docs: Retrieves the specification of a specific Module resource.
  - info:
      name: Ambassador Update a Module
      type: http
    http:
      method: PUT
      url: https://{ambassador-host}:8877/apis/getambassador.io/v3alpha1/namespaces/:namespace/modules/:name
      params:
      - name: namespace
        value: default
        type: path
        description: Kubernetes namespace
      - name: name
        value: ''
        type: path
        description: Name of the resource
      body:
        type: json
        data: '{}'
    docs: Replaces an existing Module resource with the provided configuration.
bundled: true