API: Overview

From Yombo
Jump to: navigation, search

Yombo API

See also

We’ve designed our API to be easily consumed by nearly any type of software, script, or application using standard HTTP calls. This allows a script to turn on/off device, poll device information, or change system configurations.

The Yombo API is organized around REST with predictable resource oriented URLs. The API uses standard HTTP response code to indicate successes or errors. Combined with HTTP verbs, this allows off-the-shelf HTTP clients to access the API. By default, our API returns results in JSON format, however we also support more advanced msgpack.

Table of Contents

  • Quick Start
  • Various Topics
    • API Key - An API Key is used to identify an individual application or script and is required with every request.
    • Responses - Standard HTTP response codes to to signify various events.
    • Limit response size - Limit the size of the response by applying filters or limit number of responses in the result set.
    • Rate limiting - The rate at which calls the API are limited.
    • Common fields - Some fields are commonly returned in many results.
    • API: Miscellaneous - These things are not like the others.
  • Authentication
    • Login - Explore 2 different ways to login.
    • Logout - Explore 3 different ways to logout.
    • Session validation - Validate a user's login key or session.
  • Core Resources
    • Categories - Used to organize various items within the Yombo infrastructure.
    • Commands - Explore available system commands that are available to gateway devices.
    • Devices - Devices that can be controlled by a gateway.
    • Device Types - Various device types, such as X10 devices, Insteon, etc.
      • DT Commands - Commands that are available to various devices.
      • DT Command Inputs - Inputs that can be provided with commands that are sent to various device types.
    • Gateways - Gateways defined by the current user.
      • Commands - Get a list of possible commands available for a gateway.
      • DNS - Manage gateway DNS.
      • Device Types - Get a list of possible device types for a gateway.
      • DT Commands - Get a list of possible commands for all device types for a gateway.
      • Input types - Get a list of possible input types a gateway.
      • Modules - Manage gateway modules.
      • Reset login credentials - Generate new gateway login credentials.
      • Users - Manage gateway users.
    • Input types - Specifies various type if input, such as strings, addresses, automation protocols, etc.
    • Locations - Devices can be placed into various logical locations for grouping and sorting. Helps to keep devices organized.
    • Modules - Modules defined within the Yombo system.
    • Module Device Types
    • Nodes - Nodes store various data. They are used by modules to store extended data, or by the Yombo desktop app to store the menu interface data.
    • Variable - Overview of variables.
      • Variable Groups - Variable groups help organize variable fields.
      • Variable Fields - Variable fields define what items a user can set for device types, modules, and others.
      • Variable Data - Stores the actual user supplied data.
  • Other resources
    • Users - Lookup users by email or by user_id.