Introduction

Endpoints, property names, values, and behavior are all currently subject to change without notice while the API internals mature.

The SignalRGB Local API requires SignalRGB Pro for most endpoints. Endpoints requiring a Pro use account will return a 403 Forbidden error if the running application doesn't have a signed in user, or the signed in user doesn't have a SignalRGB Pro account.

Conventions

The base URL to send all API requests is http://127.0.0.1:16038/api/v1. Https may be added at a later date.

The SignalRGB API follows a RESTful style where possible. The main difference is the addition of post actions being added to resources where applicable in place of a secondary JSON-RPC API. i.e. POST effect/{effectId}/apply.

JSON conventions

  • The SignalRGB API pulls from json:api and the Google JSON Style Guide where possible with minor changes.

    • json:api media type is omitted.
    • json:api relationships are omitted
  • All objects have an associated id. These are unique to the object type, but may not be unique across all object types.

  • Property names are in snake_case whenever possible with exceptions for things like Plugin/Effect user properties that are pulled directedly from the plugin/effect file.

Response Objects

Reponses will generally follow a specific layout with minor differences based on success, failure, and multiple vs single resources. All responses will return the current API version, a unique request id, the method URL called, any relevant params, and a status Enum in addition to the HTTP status code.

Successful requests will return a top level data property, while failures will return an array of error objects.

Success
Failure
Copy

Resources

Resources will always be returned inside of the top-level data object, and will contain the resources id, and type. Where applicable subfields will be grouped under an attributes property, and relevant links under a links property.

In the case of returning multiple resources an array of items will be returned matching the above format.

Single Resource
Multiple Resources
Copy

Errors

Error will always be returned in an array under a top-level errors property.

Property
titleRough error message
detailhuman-readable error message about this specific event
codeMatching HTTP status code
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard