Try the API with curl
These create a space and report into it. Already have one? Open it and come back through the Connect menu, and its UUID is filled in for you.
Create a space, keep its uuid. Whoever has it can read and write here.
Create a task, keep its uuid.
Report progress. Every write replaces the whole state — send all of it each time.
Finish it. This is what sends the notification.
That is the whole surface, and it is what the CLI and the MCP tools call. For something you run every day the CLI is one line instead of four; to build on it, the API reference and OpenAPI 3.1 are at /openapi.json.
One more, for a client that cannot do the above. Some things can only be handed a URL — an uptime pinger, a webhook field in somebody else's product, a router or a sensor, a cron line with a bare curl. They cannot choose a method or send a body, so the same write is reachable as a plain GET.
The -g is for curl, not for us: curl reads square brackets in a URL as a range and refuses the address without it. Anything that simply fires a URL needs nothing special.
Use it only when there is no alternative. It is a GET that writes, so anything that follows the URL performs the write: paste it into a chat and the link preview reports for you. If your client can send a request body at all, the PUT above is the one to use.