Service Mesh Interface (SMI) website screenshot

Service Mesh Interface (SMI)

Service Mesh Interface (SMI) was a CNCF Sandbox specification that defined a standard, vendor-neutral set of Kubernetes Custom Resource Definitions (CRDs) for the most common service mesh capabilities: traffic policy, traffic telemetry, and traffic management. SMI's stated mission was "a standard interface for service meshes on Kubernetes," letting operators write portable traffic policy that worked across Linkerd, Open Service Mesh, Consul Connect, Istio (via adapter), Traefik Mesh, Gloo Mesh, and others without lock-in. The specification reached v0.6.0 (January 2021 / republished January 2024) and defined four resource groups across distinct API versions: Traffic Access Control (v1alpha3), Traffic Specs (v1alpha4), Traffic Split (v1alpha4), and Traffic Metrics (v1alpha1). Active development ceased in July 2022 when the maintainers shifted focus to the Kubernetes SIG-Network GAMMA initiative inside the Gateway API project. CNCF formally archived SMI on October 3, 2023, with the GitHub org and all repositories marked read-only on October 20, 2023. The CNCF announcement stated: "the maintainers have decided to consolidate efforts on a service mesh under the auspices of GAMMA under the Kubernetes SIG Network initiative." Gateway API GAMMA reached GA in the Standard Channel with Gateway API v1.1.0 and is now the de facto Kubernetes standard for service mesh configuration, superseding SMI. This profile documents SMI as a historical/archived standard. It is preserved so consumers of the API Evangelist network can (a) recognize legacy SMI manifests still deployed in the wild, (b) understand the conceptual lineage that fed into Gateway API GAMMA, and (c) migrate off SMI to Gateway API.

Service Mesh Interface (SMI) publishes 4 APIs on the APIs.io network. Tagged areas include Service Mesh, Kubernetes, Traffic Policy, Traffic Management, and Traffic Metrics.

The Service Mesh Interface (SMI) catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

Service Mesh Interface (SMI)’s developer surface includes code examples and 29 more developer resources.

22.6/100 emerging ▬ flat Agent 1/100 human only self hosted · Apache-2.0 Full breakdown ↓
scored 2026-09-14 · rubric v0.22.0
4 APIs
Service MeshKubernetesTraffic PolicyTraffic ManagementTraffic MetricsStandardsCNCFArchivedSpecificationCustom Resource Definitions

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-09-14 · rubric v0.22.0
Regulatory Posture applies to this provider. Its tags matched the Insurance 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.
Open Source Surface applies to this provider. This product is open source and we read its repository directly, so Open Source Surface carries 10 points of the composite. It is scored from what the repository actually publishes — a security policy, a contribution guide, a release history, a code of conduct — read live from the provider rather than inferred from our own catalog pointers. This facet adds; nothing was taken away to make room for it. An open-source project is not excused from the commercial facets, because exemption would strip it of the points it does earn. If we have the wrong repository, or this product is not open source, say so on your provider repo and we will drop the facet rather than have you publish against 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 75 points between them, because both conditional facets apply and carry 25 points together. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 75% 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/service-mesh-interface: 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 →

APIs 4

Individual APIs this provider publishes, each with its own machine-readable definition.

SMI Traffic Access Control

Traffic Access Control defines the `TrafficTarget` resource, which associates a set of traffic rules with a service identity allocated to a group of pods. It is the authorizatio...

SMI Traffic Specs

Traffic Specs describes a set of resources that allow users to specify how their traffic looks. It is used in concert with access control and other policies to concretely define...

SMI Traffic Split

Traffic Split defines the `TrafficSplit` resource, which allows users to incrementally direct percentages of traffic between various services. It is the canonical SMI primitive ...

SMI Traffic Metrics

Traffic Metrics is "a resource that provides a common integration point for tools that can benefit by consuming metrics related to HTTP traffic." It is exposed as a Kubernetes A...

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Service Mesh Interface Context

9 classes · 3 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Service Mesh Interface (SMI) API Rules

5 rules · 4 warnings 1 info

SPECTRAL

JSON Schema 6

Standalone JSON Schema definitions for this provider's data models.

SMI HTTPRouteGroup

4 properties

JSON SCHEMA

SMI TCPRoute

4 properties

JSON SCHEMA

SMI TrafficMetrics

7 properties

JSON SCHEMA

SMI TrafficSplit

4 properties

JSON SCHEMA

SMI TrafficTarget

4 properties

JSON SCHEMA

SMI UDPRoute

4 properties

JSON SCHEMA

JSON Structure 1

JSON Structure definitions describing this provider's data shapes.

Service Mesh Interface Structure

0 properties

JSON STRUCTURE

Examples 1

Example request and response payloads for these APIs.

Traffic Metrics Example

7 fields

EXAMPLE

Security Posture 1

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

Resources

Documentation 7

Reference material describing how the API behaves

Scroll for all 7

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 5

SDKs, sample code, and the tooling you integrate with

Access & Security 1

Authentication, authorization, and security posture

Operate 3

Status, limits, changes, and where to get help

Commercial 1

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 10

Properties that don't map to a standard resource type

Scroll for all 10

Source (apis.yml)

apis.yml Raw ↑
name: Service Mesh Interface (SMI)
description: 'Service Mesh Interface (SMI) was a CNCF Sandbox specification that defined a standard,

  vendor-neutral set of Kubernetes Custom Resource Definitions (CRDs) for the most common

  service mesh capabilities: traffic policy, traffic telemetry, and traffic management.

  SMI''s stated mission was "a standard interface for service meshes on Kubernetes," letting

  operators write portable traffic policy that worked across Linkerd, Open Service Mesh,

  Consul Connect, Istio (via adapter), Traefik Mesh, Gloo Mesh, and others without lock-in.


  The specification reached v0.6.0 (January 2021 / republished January 2024) and defined four

  resource groups across distinct API versions: Traffic Access Control (v1alpha3),

  Traffic Specs (v1alpha4), Traffic Split (v1alpha4), and Traffic Metrics (v1alpha1).

  Active development ceased in July 2022 when the maintainers shifted focus to the

  Kubernetes SIG-Network GAMMA initiative inside the Gateway API project.


  CNCF formally archived SMI on October 3, 2023, with the GitHub org and all repositories

  marked read-only on October 20, 2023. The CNCF announcement stated: "the maintainers have

  decided to consolidate efforts on a service mesh under the auspices of GAMMA under the

  Kubernetes SIG Network initiative." Gateway API GAMMA reached GA in the Standard Channel

  with Gateway API v1.1.0 and is now the de facto Kubernetes standard for service mesh

  configuration, superseding SMI.


  This profile documents SMI as a historical/archived standard. It is preserved so consumers

  of the API Evangelist network can (a) recognize legacy SMI manifests still deployed in

  the wild, (b) understand the conceptual lineage that fed into Gateway API GAMMA, and

  (c) migrate off SMI to Gateway API.

  '
url: https://github.com/api-evangelist/service-mesh-interface
humanURL: https://smi-spec.io
deliveryModel:
  model: self-hosted
  license: Apache-2.0
  open_source: true
  commercial: false
  callable_host: false
  label: Self-hosted open source · you run it yourself
  confidence: high
  source:
  - license
  generated: '2026-08-28'
  method: derived
accessModel:
  pricing: unknown
  onboarding: unknown
  trial: false
  try_now: false
  public: false
  label: Unknown
  confidence: low
  source: []
  generated: '2026-07-22'
  method: derived
image: https://avatars.githubusercontent.com/u/59054423
tags:
- Service Mesh
- Kubernetes
- Traffic Policy
- Traffic Management
- Traffic Metrics
- Standards
- CNCF
- Archived
- Specification
- Custom Resource Definitions
created: '2026-05-22'
modified: '2026-05-23'
specificationVersion: '0.23'
type: Index
aid: service-mesh-interface
access: 3rd-Party
common:
- type: IssueTracker
  url: https://github.com/servicemeshinterface/smi-spec/issues
- type: Releases
  url: https://github.com/servicemeshinterface/smi-spec/releases
- type: ContributionGuide
  url: https://github.com/servicemeshinterface/smi-spec/blob/main/CONTRIBUTING.md
- type: DomainSecurity
  url: security/service-mesh-interface-domain-security.yml
- type: Website
  url: https://smi-spec.io
- type: Specification
  url: https://github.com/servicemeshinterface/smi-spec
- type: GitHubOrg
  url: https://github.com/servicemeshinterface
- type: GitHubRepo
  url: https://github.com/servicemeshinterface/smi-spec
- type: License
  url: https://github.com/servicemeshinterface/smi-spec/blob/main/LICENSE
  name: Apache-2.0
- type: Governance
  url: https://www.cncf.io
  name: CNCF (Cloud Native Computing Foundation) Sandbox Project
- type: ArchivalNotice
  url: https://www.cncf.io/blog/2023/10/03/cncf-archives-the-service-mesh-interface-smi-project/
  name: CNCF Archived 2023-10-03
  description: '"The maintainers have decided to consolidate efforts on a service mesh under the

    auspices of GAMMA under the Kubernetes SIG Network initiative." GitHub org archived

    and made read-only on 2023-10-20.

    '
- type: SuccessorSpecification
  url: https://gateway-api.sigs.k8s.io/mesh/gamma/
  name: Kubernetes Gateway API GAMMA Initiative
  description: 'Gateway API GAMMA reached GA in the Standard Channel with v1.1.0 and is the

    Kubernetes-native successor to SMI for service-mesh configuration.

    '
- type: SlackChannel
  url: https://cloud-native.slack.com
  name: '#smi (CNCF Slack, archived)'
- type: SDKs
  url: https://github.com/servicemeshinterface/smi-sdk-go
  name: smi-sdk-go (Go, archived)
- type: SDKs
  url: https://github.com/servicemeshinterface/smi-controller-sdk
  name: smi-controller-sdk (Go controller SDK, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/smi-metrics
  name: smi-metrics (TrafficMetrics API server, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/smi-adapter-istio
  name: smi-adapter-istio (Istio adapter, archived)
- type: ReferenceImplementation
  url: https://github.com/servicemeshinterface/istio-smi-controller
  name: istio-smi-controller (example controller, archived)
- type: KnownImplementation
  name: Linkerd
  url: https://linkerd.io
- type: KnownImplementation
  name: Open Service Mesh (OSM)
  url: https://openservicemesh.io
- type: KnownImplementation
  name: Consul Connect
  url: https://www.consul.io/docs/connect
- type: KnownImplementation
  name: Traefik Mesh
  url: https://traefik.io/traefik-mesh/
- type: KnownImplementation
  name: Gloo Mesh
  url: https://www.solo.io/products/gloo-mesh/
- type: KnownImplementation
  name: Flagger
  url: https://flagger.app
- type: KnownImplementation
  name: Meshery
  url: https://meshery.io
- type: KnownImplementation
  name: Argo Rollouts (TrafficSplit support)
  url: https://argoproj.github.io/rollouts/
- type: JSONSchema
  url: ./json-schema/
- type: JSONLD
  url: ./json-ld/service-mesh-interface-context.jsonld
- type: Vocabulary
  url: ./vocabulary/service-mesh-interface-vocabulary.yml
- type: Examples
  url: ./examples/
apis:
- name: SMI Traffic Access Control
  description: 'Traffic Access Control defines the `TrafficTarget` resource, which associates a set

    of traffic rules with a service identity allocated to a group of pods. It is the

    authorization layer of SMI: which source identities may speak which protocols/routes

    to which destination identity. Per the spec, "a valid TrafficTarget must specify a

    destination, at least one rule, and at least one source."

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-access/v1alpha3/traffic-access.md
  aid: smi-traffic-access
  tags:
  - Traffic Policy
  - Access Control
  - Authorization
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: access.smi-spec.io/v1alpha3
  - type: Kind
    name: TrafficTarget
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-access/v1alpha3/traffic-access.md
  - type: JSONSchema
    url: ./json-schema/traffic-target-schema.json
  - type: Examples
    url: ./examples/traffic-target-example.yaml
- name: SMI Traffic Specs
  description: 'Traffic Specs describes a set of resources that allow users to specify how their

    traffic looks. It is used in concert with access control and other policies to

    concretely define what should happen to specific types of traffic as it flows

    through the mesh. Defines `HTTPRouteGroup`, `TCPRoute`, and `UDPRoute` resources.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-specs/v1alpha4/traffic-specs.md
  aid: smi-traffic-specs
  tags:
  - Traffic Specs
  - Routing
  - HTTP
  - TCP
  - UDP
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: specs.smi-spec.io/v1alpha4
  - type: Kind
    name: HTTPRouteGroup
  - type: Kind
    name: TCPRoute
  - type: Kind
    name: UDPRoute
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-specs/v1alpha4/traffic-specs.md
  - type: JSONSchema
    url: ./json-schema/http-route-group-schema.json
  - type: JSONSchema
    url: ./json-schema/tcp-route-schema.json
  - type: JSONSchema
    url: ./json-schema/udp-route-schema.json
  - type: Examples
    url: ./examples/http-route-group-example.yaml
  - type: Examples
    url: ./examples/tcp-route-example.yaml
  - type: Examples
    url: ./examples/udp-route-example.yaml
- name: SMI Traffic Split
  description: 'Traffic Split defines the `TrafficSplit` resource, which allows users to incrementally

    direct percentages of traffic between various services. It is the canonical SMI

    primitive for canary deployments, blue/green rollouts, and A/B testing across a mesh.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md
  aid: smi-traffic-split
  tags:
  - Traffic Management
  - Traffic Splitting
  - Canary
  - Blue-Green
  - Progressive Delivery
  - Kubernetes CRD
  - SMI
  tags_raw:
  - Traffic Management
  - Traffic Splitting
  - Canary
  - Blue Green
  - Progressive Delivery
  - Kubernetes CRD
  - SMI
  properties:
  - type: APIVersion
    name: split.smi-spec.io/v1alpha4
  - type: Kind
    name: TrafficSplit
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md
  - type: JSONSchema
    url: ./json-schema/traffic-split-schema.json
  - type: Examples
    url: ./examples/traffic-split-example.yaml
- name: SMI Traffic Metrics
  description: 'Traffic Metrics is "a resource that provides a common integration point for tools

    that can benefit by consuming metrics related to HTTP traffic." It is exposed as a

    Kubernetes APIService extension at `metrics.smi-spec.io/v1alpha1` and reports

    latency percentiles (p50/p90/p99) and success/failure counts per pod, deployment,

    namespace, or traffic edge.

    '
  humanURL: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-metrics/v1alpha1/traffic-metrics.md
  baseURL: https://kubernetes.default.svc/apis/metrics.smi-spec.io/v1alpha1
  aid: smi-traffic-metrics
  tags:
  - Traffic Metrics
  - Observability
  - Telemetry
  - Kubernetes APIService
  - SMI
  properties:
  - type: APIVersion
    name: metrics.smi-spec.io/v1alpha1
  - type: Kind
    name: TrafficMetrics
  - type: Kind
    name: TrafficMetricsList
  - type: Specification
    url: https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-metrics/v1alpha1/traffic-metrics.md
  - type: ReferenceImplementation
    url: https://github.com/servicemeshinterface/smi-metrics
  - type: JSONSchema
    url: ./json-schema/traffic-metrics-schema.json
  - type: Examples
    url: ./examples/traffic-metrics-example.json
  operations:
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods/{name}
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/pods/{name}/edges
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments/{name}
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces/{namespace}/deployments/{name}/edges
  - method: GET
    endpoint: /apis/metrics.smi-spec.io/v1alpha1/namespaces
maintainers:
- FN: API Evangelist
  email: info@apievangelist.com
  url: https://apievangelist.com

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/service-mesh-interface"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/service-mesh-interface/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/service-mesh-interface/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.