{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"http://tokens.cardano.org","description":"Generated server url"}],"tags":[{"name":"Plugin API","description":"Read-only monitoring API for all plugin types"},{"name":"health","description":"Health Endpoint for the cardano token metadata registry"},{"name":"v1-api","description":"The Cardano offchain metadata API"},{"name":"Actuator","description":"Monitor and interact","externalDocs":{"description":"Spring Boot Actuator Web API Documentation","url":"https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"}}],"paths":{"/metadata/query":{"post":{"tags":["v1-api"],"summary":"Query multiple properties of multiple subjects.","operationId":"getSubjects","requestBody":{"content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}},"400":{"description":"Invalid `body`","content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}}}}},"/api/v2/subjects/query":{"post":{"tags":["v-2-api-controller"],"summary":"Query either all or a subset of properties of the given subjects","operationId":"getSubjects_1","parameters":[{"name":"query_priority","in":"query","description":"the CIP priority: if the same property is present in multiple standards, the one with highest priority is returned","required":false,"schema":{"type":"array","items":{"type":"string","enum":["CIP_26","CIP_68"]}}},{"name":"show_cips_details","in":"query","description":"whether all the CIP specific properties should be returned in the response. False by default","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}}}}},"/yaci/admin/plugins":{"get":{"tags":["Plugin API"],"description":"Get overview of all plugin types with summary statistics","operationId":"getOverview","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginOverviewResponse"}}}}}}},"/yaci/admin/plugins/schedulers":{"get":{"tags":["Plugin API"],"description":"List all scheduler plugins with status and statistics","operationId":"listSchedulers","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SchedulerListResponse"}}}}}}},"/yaci/admin/plugins/schedulers/{name}":{"get":{"tags":["Plugin API"],"description":"Get detailed status and statistics for a specific scheduler","operationId":"getSchedulerStatus","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SchedulerStatusResponse"}}}}}}},"/yaci/admin/plugins/pre-actions":{"get":{"tags":["Plugin API"],"description":"List all pre-action plugins with execution metrics","operationId":"listPreActions","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}}}}}},"/yaci/admin/plugins/pre-actions/{name}":{"get":{"tags":["Plugin API"],"description":"Get detailed metrics for a specific pre-action plugin","operationId":"getPreActionDetail","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginDetailResponse"}}}}}}},"/yaci/admin/plugins/post-actions":{"get":{"tags":["Plugin API"],"description":"List all post-action plugins with execution metrics","operationId":"listPostActions","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}}}}}},"/yaci/admin/plugins/post-actions/{name}":{"get":{"tags":["Plugin API"],"description":"Get detailed metrics for a specific post-action plugin","operationId":"getPostActionDetail","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginDetailResponse"}}}}}}},"/yaci/admin/plugins/filters":{"get":{"tags":["Plugin API"],"description":"List all filter plugins with execution metrics","operationId":"listFilters","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}}}}}},"/yaci/admin/plugins/filters/{name}":{"get":{"tags":["Plugin API"],"description":"Get detailed metrics for a specific filter plugin","operationId":"getFilterDetail","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginDetailResponse"}}}}}}},"/yaci/admin/plugins/event-handlers":{"get":{"tags":["Plugin API"],"description":"List all event handler plugins with execution metrics","operationId":"listEventHandlers","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}}}}}},"/yaci/admin/plugins/event-handlers/{name}":{"get":{"tags":["Plugin API"],"description":"Get detailed metrics for a specific event handler plugin","operationId":"getEventHandlerDetail","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PluginDetailResponse"}}}}}}},"/metadata/{subject}":{"get":{"tags":["v1-api"],"summary":"Query all properties of the single subject specified by the given subject id.","operationId":"getAllPropertiesForSubject","parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenMetadata"}}}},"404":{"description":"`subject` not found","content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/TokenMetadata"}}}}}}},"/metadata/{subject}/properties/{property}":{"get":{"tags":["v1-api"],"summary":"Query a specific property of a single subject specified by the given subject id.","operationId":"getPropertyForSubject","parameters":[{"name":"subject","in":"path","required":true,"schema":{"type":"string"}},{"name":"property","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenMetadata"}}}},"404":{"description":"`subject` or `property` not found","content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/TokenMetadata"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Returns health status of service including if the initial sync is done","operationId":"getHealthStatus","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}},"deprecated":true}},"/api/v2/subjects/{subject}":{"get":{"tags":["v-2-api-controller"],"summary":"Query either all or a subset of properties of a given subject","operationId":"getSubject","parameters":[{"name":"subject","in":"path","description":"the concatenation of policy id and asset name (if any) to query","required":true,"schema":{"type":"string"}},{"name":"property","in":"query","description":"the list of properties to be returned in the reponse, if none specified, all properties will be returned","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"query_priority","in":"query","description":"the CIP priority: if the same property is present in multiple standards, the one with highest priority is returned","required":false,"schema":{"type":"array","items":{"type":"string","enum":["CIP_26","CIP_68"]}}},{"name":"show_cips_details","in":"query","description":"whether all the CIP specific properties should be returned in the response. False by default","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}},"/actuator":{"get":{"tags":["Actuator"],"summary":"Actuator root web endpoint","operationId":"links","responses":{"200":{"description":"OK","content":{"application/vnd.spring-boot.actuator.v3+json":{"schema":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Link"}}}},"application/vnd.spring-boot.actuator.v2+json":{"schema":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Link"}}}},"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Link"}}}}}}}}},"/actuator/prometheus":{"get":{"tags":["Actuator"],"summary":"Actuator web endpoint 'prometheus'","operationId":"scrape","parameters":[{"name":"format","in":"query","schema":{"type":"string","enum":["CONTENT_TYPE_004","CONTENT_TYPE_OPENMETRICS_100","CONTENT_TYPE_PROTOBUF"]}},{"name":"includedNames","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain;version=0.0.4;charset=utf-8":{"schema":{"type":"object"}},"application/openmetrics-text;version=1.0.0;charset=utf-8":{"schema":{"type":"object"}},"application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited":{"schema":{"type":"object"}}}}}}},"/actuator/metrics":{"get":{"tags":["Actuator"],"summary":"Actuator web endpoint 'metrics'","operationId":"listNames","responses":{"200":{"description":"OK","content":{"application/vnd.spring-boot.actuator.v3+json":{"schema":{"type":"object"}},"application/vnd.spring-boot.actuator.v2+json":{"schema":{"type":"object"}},"application/json":{"schema":{"type":"object"}}}}}}},"/actuator/metrics/{requiredMetricName}":{"get":{"tags":["Actuator"],"summary":"Actuator web endpoint 'metrics-requiredMetricName'","operationId":"metric","parameters":[{"name":"requiredMetricName","in":"path","required":true,"schema":{"type":"string"}},{"name":"tag","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/vnd.spring-boot.actuator.v3+json":{"schema":{"type":"object"}},"application/vnd.spring-boot.actuator.v2+json":{"schema":{"type":"object"}},"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not Found"}}}},"/actuator/info":{"get":{"tags":["Actuator"],"summary":"Actuator web endpoint 'info'","operationId":"info","responses":{"200":{"description":"OK","content":{"application/vnd.spring-boot.actuator.v3+json":{"schema":{"type":"object"}},"application/vnd.spring-boot.actuator.v2+json":{"schema":{"type":"object"}},"application/json":{"schema":{"type":"object"}}}}}}},"/actuator/health":{"get":{"tags":["Actuator"],"summary":"Actuator web endpoint 'health'","operationId":"health","responses":{"200":{"description":"OK","content":{"application/vnd.spring-boot.actuator.v3+json":{"schema":{"type":"object"}},"application/vnd.spring-boot.actuator.v2+json":{"schema":{"type":"object"}},"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"AnnotatedSignature":{"type":"object","properties":{"signature":{"type":"string"},"publicKey":{"type":"string"}},"required":["publicKey","signature"]},"BatchResponse":{"type":"object","properties":{"subjects":{"type":"array","items":{"$ref":"#/components/schemas/TokenMetadata"}}},"required":["subjects"]},"DecimalsProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"number","example":1,"maximum":255,"minimum":0}},"required":["sequenceNumber","signatures","value"]},"DescriptionProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"string","maxLength":500,"minLength":0}},"required":["sequenceNumber","signatures","value"]},"LogoProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"string","format":"byte"}},"required":["sequenceNumber","signatures","value"]},"NameProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"string","maxLength":50,"minLength":1}},"required":["sequenceNumber","signatures","value"]},"TickerProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"string","example":"QUID","maxLength":9,"minLength":2}},"required":["sequenceNumber","signatures","value"]},"TokenMetadata":{"type":"object","properties":{"additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TokenMetadataPropertyObject"}},"subject":{"type":"string","example":"b377d03a568dde663534e040fc32a57323ec00970df0e863eba3f098717569640a"},"policy":{"type":"string","example":"82008200581ce62601e8eeec975f3f124a288cd0ecb2973f5fc225629f1401a79b16"},"name":{"$ref":"#/components/schemas/NameProperty"},"description":{"$ref":"#/components/schemas/DescriptionProperty"},"url":{"$ref":"#/components/schemas/UrlProperty"},"ticker":{"$ref":"#/components/schemas/TickerProperty"},"decimals":{"$ref":"#/components/schemas/DecimalsProperty"},"logo":{"$ref":"#/components/schemas/LogoProperty"},"updated":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"}},"required":["description","name","subject"]},"TokenMetadataPropertyObject":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"object"}},"required":["sequenceNumber","signatures"]},"UrlProperty":{"type":"object","properties":{"signatures":{"type":"array","items":{"$ref":"#/components/schemas/AnnotatedSignature"}},"sequenceNumber":{"type":"number","minimum":0},"value":{"type":"string","example":"https://www.iohk.io","maxLength":250,"minLength":0,"pattern":"^https://"}},"required":["sequenceNumber","signatures","value"]},"BatchRequest":{"type":"object","properties":{"subjects":{"type":"array","items":{"type":"string"}},"properties":{"type":"array","items":{"type":"string"}}},"required":["subjects"]},"FungibleTokenMetadata":{"type":"object","properties":{"decimals":{"type":"integer","format":"int64"},"description":{"type":"string"},"logo":{"type":"string"},"name":{"type":"string"},"ticker":{"type":"string"},"url":{"type":"string"},"version":{"type":"integer","format":"int64"}}},"LongProperty":{"type":"object","properties":{"value":{"type":"integer","format":"int64"},"source":{"type":"string"}}},"Metadata":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/StringProperty"},"description":{"$ref":"#/components/schemas/StringProperty"},"ticker":{"$ref":"#/components/schemas/StringProperty"},"decimals":{"$ref":"#/components/schemas/LongProperty"},"logo":{"$ref":"#/components/schemas/StringProperty"},"url":{"$ref":"#/components/schemas/StringProperty"},"version":{"$ref":"#/components/schemas/LongProperty"},"empty":{"type":"boolean"},"valid":{"type":"boolean"}}},"Standards":{"type":"object","properties":{"cip26":{"$ref":"#/components/schemas/TokenMetadata"},"cip68":{"$ref":"#/components/schemas/FungibleTokenMetadata"}}},"StringProperty":{"type":"object","properties":{"value":{"type":"string"},"source":{"type":"string"}}},"Subject":{"type":"object","properties":{"subject":{"type":"string"},"metadata":{"$ref":"#/components/schemas/Metadata"},"standards":{"$ref":"#/components/schemas/Standards"}}},"PluginOverviewResponse":{"type":"object","properties":{"totalPlugins":{"type":"integer","format":"int32"},"activePlugins":{"type":"integer","format":"int32"},"filters":{"$ref":"#/components/schemas/PluginTypeStats"},"preActions":{"$ref":"#/components/schemas/PluginTypeStats"},"postActions":{"$ref":"#/components/schemas/PluginTypeStats"},"eventHandlers":{"$ref":"#/components/schemas/PluginTypeStats"},"schedulers":{"$ref":"#/components/schemas/PluginTypeStats"},"initPlugins":{"$ref":"#/components/schemas/PluginTypeStats"}}},"PluginTypeStats":{"type":"object","properties":{"count":{"type":"integer","format":"int32"},"totalExecutions":{"type":"integer","format":"int64"},"totalErrors":{"type":"integer","format":"int64"},"totalItemsProcessed":{"type":"integer","format":"int64"}}},"SchedulerListResponse":{"type":"object","properties":{"totalSchedulers":{"type":"integer","format":"int32"},"runningSchedulers":{"type":"integer","format":"int32"},"failedSchedulers":{"type":"integer","format":"int32"},"schedulers":{"type":"array","items":{"$ref":"#/components/schemas/SchedulerSummary"}}}},"SchedulerSummary":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"scheduleType":{"type":"string"},"scheduleValue":{"type":"string"},"totalExecutions":{"type":"integer","format":"int64"},"lastExecutionTime":{"type":"integer","format":"int64"}}},"SchedulerStatistics":{"type":"object","properties":{"totalExecutions":{"type":"integer","format":"int64"},"successfulExecutions":{"type":"integer","format":"int64"},"failedExecutions":{"type":"integer","format":"int64"},"lastExecutionTime":{"type":"integer","format":"int64"},"lastExecutionDuration":{"type":"integer","format":"int64"},"averageExecutionDuration":{"type":"number","format":"double"},"lastError":{"type":"string"}}},"SchedulerStatusResponse":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["SCHEDULED","RUNNING","COMPLETED","FAILED","CANCELLED"]},"scheduleType":{"type":"string","enum":["INTERVAL","CRON"]},"scheduleValue":{"type":"string"},"statistics":{"$ref":"#/components/schemas/SchedulerStatistics"}}},"PluginListResponse":{"type":"object","properties":{"pluginType":{"type":"string"},"totalPlugins":{"type":"integer","format":"int32"},"totalExecutions":{"type":"integer","format":"int64"},"totalErrors":{"type":"integer","format":"int64"},"plugins":{"type":"array","items":{"$ref":"#/components/schemas/PluginSummary"}}}},"PluginSummary":{"type":"object","properties":{"name":{"type":"string"},"language":{"type":"string"},"executionCount":{"type":"integer","format":"int64"},"successCount":{"type":"integer","format":"int64"},"errorCount":{"type":"integer","format":"int64"},"lastExecutionTime":{"type":"string"},"lastDuration":{"type":"integer","format":"int64"},"itemsProcessed":{"type":"integer","format":"int64"}}},"DurationMetrics":{"type":"object","properties":{"lastDuration":{"type":"integer","format":"int64"},"minDuration":{"type":"integer","format":"int64"},"maxDuration":{"type":"integer","format":"int64"},"averageDuration":{"type":"number","format":"double"}}},"ExecutionMetrics":{"type":"object","properties":{"totalExecutions":{"type":"integer","format":"int64"},"successfulExecutions":{"type":"integer","format":"int64"},"failedExecutions":{"type":"integer","format":"int64"},"successRate":{"type":"number","format":"double"},"lastExecutionTime":{"type":"string"}}},"ItemMetrics":{"type":"object","properties":{"totalItemsProcessed":{"type":"integer","format":"int64"}}},"PluginDetailResponse":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"language":{"type":"string"},"executionMetrics":{"$ref":"#/components/schemas/ExecutionMetrics"},"itemMetrics":{"$ref":"#/components/schemas/ItemMetrics"},"durationMetrics":{"$ref":"#/components/schemas/DurationMetrics"}}},"HealthResponse":{"type":"object","properties":{"synced":{"type":"boolean"},"syncStatus":{"type":"string"}}},"Response":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/Subject"},"queryPriority":{"type":"array","items":{"type":"string"}}}},"Link":{"type":"object","properties":{"href":{"type":"string"},"templated":{"type":"boolean"}}}}}}