Skip to main content
MeshModel models represent collections of components grouped by technology or platform. Examples include Kubernetes, Istio, AWS, and custom infrastructure models.

List All Models

curl "http://localhost:9081/api/meshmodels/models?page=0&pagesize=25"
Method: GET Endpoint: /api/meshmodels/models

Query Parameters

page
integer
default:"0"
Page number for pagination
pagesize
string
default:"25"
Number of models per page. Use all to return all results.
Search term for model name or display name
order
string
Field to order by (e.g., name, created_at)
sort
string
default:"asc"
Sort direction: asc or desc
version
string
Filter by model version
annotations
string
Filter by annotation models:
  • true - Only return annotation models
  • false - Exclude annotation models
  • Any other value - Return all models

Response

page
integer
Current page number
page_size
integer
Number of items per page
count
integer
Total number of models
models
array
Array of model objects (grouped by duplicates)
Example Response:
{
  "page": 0,
  "page_size": 25,
  "count": 342,
  "models": [
    {
      "name": "kubernetes",
      "displayName": "Kubernetes",
      "category": {
        "name": "Orchestration & Management"
      },
      "version": "v1.28.0",
      "duplicates": 15,
      "versions": ["v1.28.0", "v1.27.0", "v1.26.0"]
    }
  ]
}

Get Models by Name

curl "http://localhost:9081/api/meshmodels/models/{model}?version=v1.28.0"
Method: GET Endpoint: /api/meshmodels/models/{model}

Path Parameters

model
string
required
Model name (e.g., kubernetes, istio, aws)

Query Parameters

version
string
Filter by specific version. If unspecified, all versions are returned.
page
integer
default:"0"
Page number
pagesize
string
default:"25"
Page size
annotations
string
Filter annotation models

Response

Returns all versions of the specified model.

Get Models by Category

curl "http://localhost:9081/api/meshmodels/categories/{category}/models"
Method: GET Endpoint: /api/meshmodels/categories/{category}/models

Path Parameters

category
string
required
Category name (lowercase with hyphens, e.g., orchestration-and-management)

Query Parameters

Same as List All Models endpoint.

Response

Returns all models in the specified category.

Get Specific Model by Category

curl "http://localhost:9081/api/meshmodels/categories/{category}/models/{model}"
Method: GET Endpoint: /api/meshmodels/categories/{category}/models/{model}

Path Parameters

category
string
required
Category name
model
string
required
Model name

Register Models

curl -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/model.tar.gz",
    "register": true
  }' \
  http://localhost:9081/api/meshmodels/register
Method: POST Endpoint: /api/meshmodels/register

Request Body

url
string
URL to a model package (.tar.gz)
file
file
Model package file (multipart form upload)
register
boolean
default:"true"
Whether to register the model

Response

Status: 200 OK Returns registration status and imported entities.

Delete Model

curl -X DELETE \
  -H "Authorization: Bearer $TOKEN" \
  http://localhost:9081/api/meshmodels/models/{id}
Method: DELETE Endpoint: /api/meshmodels/models/{id}

Path Parameters

id
string
required
Model ID (UUID)

Response

Status: 200 OK

Export Model

curl "http://localhost:9081/api/meshmodels/export?model=kubernetes&version=v1.28.0" \
  -o kubernetes-v1.28.0.tar.gz
Method: GET Endpoint: /api/meshmodels/export

Query Parameters

model
string
required
Model name to export
version
string
Model version to export

Response

Returns a .tar.gz archive containing the model definition.

Get Model Registrants

curl http://localhost:9081/api/meshmodels/registrants
Method: GET Endpoint: /api/meshmodels/registrants

Response

Returns a list of all model registrants (sources that registered models). Example Response:
{
  "registrants": [
    {
      "id": "registrant-uuid",
      "hostname": "artifacthub",
      "kind": "artifacthub",
      "status": "registered"
    },
    {
      "id": "registrant-uuid-2",
      "hostname": "github",
      "kind": "github",
      "status": "registered"
    }
  ]
}

Get MeshModel Summary

See the GraphQL Queries documentation for getting aggregated statistics about models, components, and relationships.

Model Categories

Common model categories include:
  • Orchestration & Management - Kubernetes, Nomad, Docker Swarm
  • Service Mesh - Istio, Linkerd, Consul
  • Observability - Prometheus, Grafana, Jaeger
  • Security & Compliance - OPA, Falco, cert-manager
  • App Definition - Helm, Kustomize
  • Cloud Provider - AWS, GCP, Azure
  • Database - PostgreSQL, MongoDB, Redis
  • Networking - NGINX, Traefik, Cilium

Error Codes

400 Bad Request
error
Invalid request parameters or malformed JSON
404 Not Found
error
Model not found
500 Internal Server Error
error
Server error occurred