Catalog — API Reference
Package: dodil.ignite.v1 · Service: ComputeService
The catalog is a unified, browsable list of apps and models for discovery. Each entry is a CatalogItem — a shared header plus a oneof source that is either app-specific or model-specific fields. There are two list surfaces (org-scoped vs public) and one detail surface.
gRPC reaches every method at dodil.ignite.v1.ComputeService/<Method> on $IGNITE_GRPC; the HTTP gateway mirrors each one. See Conventions → Using gRPC for grpcurl setup. gRPC requests use the proto field names (snake_case); HTTP uses pbjson (camelCase). int64/uint64 are JSON strings, enums are wire-name strings; responses render camelCase.
| RPC | HTTP | Auth |
|---|---|---|
ListCatalog | GET /v1/ignite/catalog/{organization_name} | Bearer |
ListPublicCatalog | GET /v1/ignite/public/catalog | none |
GetPublicCatalogDetail | GET /v1/ignite/public/catalog/{name} | none |
HealthCheck | GET /v1/ignite/health | none |
ListPublicCatalog / GetPublicCatalogDetail are unauthenticated — they expose only items published to the public catalog.
Want to see what’s already there? Catalog Functions lists the prebuilt, ready-to-invoke apps Ignite ships (text/data analysis + document ingestion).
CatalogItem
The shared list shape. The oneof source discriminates app vs model and carries type-specific fields.
enum CatalogSourceType {
CATALOG_SOURCE_UNSPECIFIED = 0;
CATALOG_SOURCE_FUNCTION = 1; // an app
CATALOG_SOURCE_MODEL = 2;
}
message CatalogItem {
string id = 1;
string name = 2;
string description = 3;
repeated string tags = 4;
repeated string category = 5;
string author = 6;
string input_modality = 7;
int64 created_at_ms = 8;
string output_modality = 9;
oneof source {
AppCatalogFields app = 10; // present for apps
ModelCatalogFields model = 11; // present for models
}
}
message AppCatalogFields {
string runtime = 1;
bool mcp_enabled = 2;
bool has_streaming = 3;
uint32 model_count = 4;
}
message ModelCatalogFields {
string family = 1;
string provider = 2;
string license = 3;
string architecture = 4;
string task = 5; // "embedding" | "classification" | "generation" | ...
string parameters = 6; // "1.5B", "66M"
uint64 context_window = 7;
}ListCatalog
Org-scoped list of apps + models, with filters and cursor pagination.
Request
HTTP
curl -sS "https://api.dev.dodil.io/v1/ignite/catalog/acme-corp?limit=50&filterSourceType=CATALOG_SOURCE_FUNCTION&filterTags=rag" \
-H "Authorization: Bearer $DODIL_TOKEN"Response
HTTP
{
"items": [
{
"id": "acme-corp/search-knowledge-base",
"name": "search-knowledge-base",
"description": "Searches the knowledge base and returns relevant results",
"tags": ["rag", "search"],
"inputModality": "text",
"app": { "runtime": "python", "mcpEnabled": true, "hasStreaming": false, "modelCount": 1 }
}
],
"nextCursor": "",
"totalCount": "1"
}ListPublicCatalog
The public catalog — same shape as ListCatalog but unauthenticated and not org-scoped (only items published publicly).
Request
HTTP
# no auth required
curl -sS "https://api.dev.dodil.io/v1/ignite/public/catalog?limit=50&filterSourceType=CATALOG_SOURCE_MODEL"Response
ListPublicCatalogResponse { repeated CatalogItem items; string next_cursor; uint32 total_count; } — same CatalogItem shape as ListCatalog.
GetPublicCatalogDetail
Full detail for one public item by name. The response shares a header and carries a oneof detail — CatalogAppDetail or CatalogModelDetail.
Request
HTTP
# no auth required
curl -sS "https://api.dev.dodil.io/v1/ignite/public/catalog/kimi-k2-5"Response
HTTP
{
"id": "models/kimi-k2-5",
"name": "kimi-k2-5",
"description": "Long-context chat model",
"category": ["chat"],
"inputModality": "text",
"model": {
"family": "kimi",
"provider": "moonshot",
"task": "generation",
"parameters": "1.5B",
"contextWindow": "131072",
"precision": "float16",
"useCases": ["chat", "summarization"]
}
}A model’s detail tells you how to call it — its input_schema / task map to a Models RPC (chat, embeddings, rerank, transcription, or generic infer).
HealthCheck
Service liveness probe.
HTTP
curl -sS "https://api.dev.dodil.io/v1/ignite/health"See also
- MCP Tools — expose apps as agent tools
- Apps — create / configure apps
- Models — the inference RPCs a catalog model maps to
grpcurlreference — flags + reflection fallbacks