{"id":36138076,"url":"https://github.com/unfoldedcircle/core-api","last_synced_at":"2026-01-26T08:07:21.929Z","repository":{"id":37551692,"uuid":"484422239","full_name":"unfoldedcircle/core-api","owner":"unfoldedcircle","description":"API specifications for Remote Two/3 by Unfolded Circle","archived":false,"fork":false,"pushed_at":"2026-01-20T11:43:18.000Z","size":10444,"stargazers_count":92,"open_issues_count":11,"forks_count":4,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-20T20:36:47.440Z","etag":null,"topics":["api","asyncapi","documentation"],"latest_commit_sha":null,"homepage":"https://unfoldedcircle.github.io/core-api/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unfoldedcircle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-22T12:17:50.000Z","updated_at":"2026-01-20T11:43:20.000Z","dependencies_parsed_at":"2024-02-25T13:42:03.820Z","dependency_job_id":"9a4db79a-569e-4a85-b9c0-1cfe2e802af7","html_url":"https://github.com/unfoldedcircle/core-api","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/unfoldedcircle/core-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfoldedcircle%2Fcore-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfoldedcircle%2Fcore-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfoldedcircle%2Fcore-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfoldedcircle%2Fcore-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unfoldedcircle","download_url":"https://codeload.github.com/unfoldedcircle/core-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfoldedcircle%2Fcore-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28770153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T07:45:00.504Z","status":"ssl_error","status_checked_at":"2026-01-26T07:45:00.070Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","asyncapi","documentation"],"created_at":"2026-01-10T23:01:01.632Z","updated_at":"2026-01-26T08:07:21.923Z","avatar_url":"https://github.com/unfoldedcircle.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"[![AsyncAPI Validation](https://github.com/unfoldedcircle/core-api/actions/workflows/asyncapi.yml/badge.svg)](https://github.com/unfoldedcircle/core-api/actions/workflows/asyncapi.yml) \n[![OpenAPI Validation](https://github.com/unfoldedcircle/core-api/actions/workflows/openapi.yml/badge.svg)](https://github.com/unfoldedcircle/core-api/actions/workflows/asyncapi.yml)\n[![GH Pages mdBook deploy](https://github.com/unfoldedcircle/core-api/actions/workflows/deploy_mdbook.yml/badge.svg)](https://github.com/unfoldedcircle/core-api/actions/workflows/deploy_mdbook.yml)\n\n# Unfolded Circle Core APIs\n\nThis repository contains API specifications of [Unfolded Circle Remote](https://www.unfoldedcircle.com/) products.\n\nRead the **[Developer Guide](https://unfoldedcircle.github.io/core-api)** which presents the [./doc](doc) content in a\nstructured and searchable book format.\n\n## Overview\n\n- [Remote Two user interface](./doc/remote-ui.md)\n- [Bluetooth HID peripheral support](doc/bt/README.md)\n\nAPI definitions:\n\n- [WebSocket Integration-API](./integration-api/README.md) defined with [AsyncAPI](https://www.asyncapi.com/).\n- [WebSocket Core-API](./core-api/websocket/README.md) defined with [AsyncAPI](https://www.asyncapi.com/)\n- [REST Core-API](./core-api/rest/README.md) defined with [OpenAPI](https://www.openapis.org/)\n- [WebSocket Dock-API](./dock-api/README.md) defined with [AsyncAPI](https://www.asyncapi.com/)\n\nIntegration driver documentation:\n\n- [Remote Two entities](doc/entities/README.md).\n- [How to write an integration driver](doc/integration-driver/write-integration-driver.md).\n- [WebSocket handling](doc/integration-driver/websocket.md): authentication, keep alive, error handling.\n\n## Integration API\n\nThe Remote WebSockets integration-API allows writing device integrations for the Unfolded Circle Remote devices.  \nAt the moment only user integrations running on an external host are supported.\n\nℹ️ Beta release 1.9.0 allows to install custom integration drivers on the Remote. This is a developer preview feature\nto test their integrations.\n\nThe integration driver acts as server and the Remote device as client. The remote connects to the integration when an\nintegration instance is configured. Whenever the remote enters standby it may choose to disconnect and automatically\nreconnect again after wakeup.\n\nThe goal of the integration-API is to cover not only simple static drivers, like controlling GPIOs on a Raspberry Pi,\nbut also support to integrate existing home automation hubs like Home Assistant, Homey, openHAB etc.  \nThe focus of the integration API is on entity integration, not on controlling or configuring the Remote device. Please\nrefer to the Core-API for further functionality.\n\nAn integration driver usually doesn't need to use the Core-API as well, unless it also wants to customize certain device\nbehaviour or automatically add or configure its entities to the users profile.\n\n### Develop integration drivers\n\nSince we are providing an API and not an SDK for a specific programming language, one can develop external integrations\nin any language which is capable running a WebSockets server and handling JSON data.\n\nThe downside of an API is that more low-level coding is required. In our case this involves running a WebSocket server,\nhandling the connections from the Remote device, and parsing the JSON payload in the WebSocket text messages.\nHowever, once this is done, the required API message interactions are rather simple to handle. \n\nSee [how to write an integration driver](doc/integration-driver/write-integration-driver.md) for more information about\nhow to develop an integration driver for the Remote devices.\n\n#### Examples\n\n- [API models in Rust](https://github.com/unfoldedcircle/api-model-rs)\n- [Node.js API wrapper for the UC Integration-API](https://github.com/unfoldedcircle/integration-node-library)  \n  Integrations using the Node.js API wrapper:\n  - [Global Caché IR integration](https://github.com/unfoldedcircle/integration-globalcache)\n  - [Roon integration](https://github.com/unfoldedcircle/integration-roon)\n- [Python API wrapper library for the UC Integration-API](https://github.com/unfoldedcircle/integration-python-library)  \n  Integrations using the Python API wrapper:\n  - [Android TV integration](https://github.com/unfoldedcircle/integration-androidtv)\n  - [Apple TV integration](https://github.com/unfoldedcircle/integration-appletv)\n  - [Denon AVR integration](https://github.com/unfoldedcircle/integration-denonavr)\n- [Home Assistant integration](https://github.com/unfoldedcircle/integration-home-assistant) written in Rust\n\nWe plan to release more examples in the future.\n\n## Core APIs\n\nThe UC Remote WebSockets \u0026 REST Core-APIs allow you to interact with the Unfolded Circle remote-core service and\ntake full control of its features.\n\nSee [core-api](./core-api) directory for more information.\n\n## Other resources\n\n- [remote-core simulator](https://github.com/unfoldedcircle/core-simulator) to start developing integrations without a UC Remote device\n- Open Source [remote-ui application](https://github.com/unfoldedcircle/remote-ui)\n\n## API versioning\n\nThe API is versioned according to [SemVer](https://semver.org/).  \nThe initial public release will be `1.0.0` once it is considered stable enough with some initial integration\nimplementations and developer examples.\n\n**Any major version zero (`0.y.z`) is for initial development and may change at any time!**  \nI.e. backward compatibility for minor releases is not yet established, anything MAY change at any time!\n\n## Recent changes\n\nThe major changes found in each new release of our API specifications are listed in the [changelog](./CHANGELOG.md) and\nunder the GitHub [releases](https://github.com/unfoldedcircle/core-api/releases).\n\nThe Dock-API follows an independent release process. The Dock-API changes are listed in the\n[Dock-API changelog](./dock-api/CHANGELOG.md).\n\n## Contributions\n\nPlease read our [contribution guidelines](./CONTRIBUTING.md) before opening a pull request.\n\n## License\n\nWe have published the API specifications and documentations under the [CC-BY-AS-4.0](https://creativecommons.org/licenses/by-sa/4.0/)\n(Creative Commons Attribution-ShareAlike 4.0 International) license. Please see [LICENSE file](./LICENSE).  \nAll code examples in this repository are licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).  \nAll graphics copyright © Unfolded Circle ApS 2022.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfoldedcircle%2Fcore-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funfoldedcircle%2Fcore-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfoldedcircle%2Fcore-api/lists"}