The complicated API is incredibly simple. It’s only a single endpoint!
The API is available at
base_url = 'https://customcomplication.mikelyons.org/complicated/set/'
The API is authenticated using an API key. You can get your API key from the app once you have initialized it (by installing the app, see Complicated How To). To use the API, append your API key to the base url.
request_url = base_url + api_key // example: https://customcomplication.mikelyons.org/complicated/set/abc1234
You can use this new endpoint to update any complication in the app. If you want to copy a pre-prepared link, you can do so from the update link part of the app after selecting a complication.
Note: due to restrictions set by Apple, I can only update a complication every 5-10 minutes. The exact rate varries based on a variety of factors (battery life, cellular connectivity, etc). For this reason, you may not see updates as soon as they are sent. If you need updates immedietely please use the Push Notifications
All requests are GET requests
The endpoint structure is as follows:
GET https://customcomplication.mikelyons.org/complicated/set/<api key>/<complication type>?value=<new value>
The values you need to fill in here are:
<api key>get this from the settings page on the app
<complication type>Specify one of the following complication types:
<new value>The new text for your complication. The value must be URL encoded, I suggest using a library for this, but some simple encoding is:
%20is a space
%0Ais a newline (For multi-lined complications)
%24is a dollar sign
This request will set the modularLarge complication to:
Stocks AAPL $152.29
Note: Watch OS Only lets you change a complication ~15 times and hour. More than that and you likely will get rate limited.
If you have any other questions please feel free to reach out. My email is firstname.lastname@example.org
If you have a Pro subscription you can send notifications as well as complication updates using a simple addition to your request.
Just include one the the following parameters in the URL:
push=Truethis will send you a push notification containing whatever data was available in the value field of your update.
push_changed=Truethis will notify you only if the value that you sent is different than the previous value on the complicated server.
This will set the modularLarge complication, and notify your phone & watch with a push notification that contains:
Print Progress 100%
Here are some other resources to help you use Complicated: