- Start
- Before you begin
Start
Before you begin
What the curl, JavaScript and command-line quickstarts need first, the names they read, and the sequence they walk.
The curl, JavaScript and command-line quickstarts walk one sequence: the same nine calls, in the same order, ending at a delivery attempt against a receiver you own whose outcome you can read. The website quickstart and the MCP quickstart reach the same place their own way.
First value is not a created resource. Creating a schedule proves the API accepted something. What these quickstarts are for is the step after that: reading the delivery attempt, which is the first point at which you can see that a real call was made to your address and what came back.
Before you start
Three things this journey cannot get for you, and why.
A project. Accept your Greatwait invitation, sign in, and create a project in the dashboard.
projects.create accepts only a signed-in member, so a project is created by a person rather than by an API credential.
An API credential. In that project, create an API credential and copy the secret it shows once.
credentials.create accepts only a signed-in member: a credential that could mint another credential would make revoking one meaningless.
An HTTPS receiver you control. Have an HTTPS URL of your own that answers POST with a 2xx status, and can be reached from the public internet.
Greatwait delivers your callback to an address you control. It does not offer a shared receiver to try, and it will not send your payload to a third-party inspection service on your behalf.
What you export
The same names in the curl and JavaScript quickstarts, so a value you set once works for either. The command line reads the same two — the origin and, for automation, the credential — and stores what it is given rather than asking again.
Nothing here is written to a file, printed, or passed as a command argument.
| Variable | What it is | Example |
|---|---|---|
GREATWAIT_API_URL | The API origin for the environment you are working against, with no trailing slash. | https://api.greatwait.dev |
GREATWAIT_API_KEY | The API credential secret, shown once when you created it. Export it in your shell; do not paste it into a command, a URL, or a file you commit. | never shown |
GREATWAIT_RECEIVER_URL | Your own HTTPS receiver. Every callback in this journey is delivered here and nowhere else. | https://receiver.example.com/greatwait |
GREATWAIT_IDEMPOTENCY_KEY | A value you choose, at least 16 printable ASCII characters, that makes the create call safe to retry. Use a fresh one for each schedule you mean to create; these quickstarts generate one if you do not set it. | first-value-0000000000000000 |
GREATWAIT_API_KEY is a secret. Export it in your shell rather than
writing it into a file, and never pass it on a command line — the
generated curl reads it with --variable, which keeps it out of the
process arguments any other user on the machine can read.
The sequence
| # | Step | Operation |
|---|---|---|
| 1 | Check which service and environment you reached | meta.version |
| 2 | Check the credential | schedules.list |
| 3 | Create the destination | endpoints.create |
| 4 | Create the one-shot | schedules.create |
| 5 | Retry it safely | schedules.create |
| 6 | Read the schedule back | schedules.read |
| 7 | Wait for the occurrence to settle | occurrences.read |
| 8 | Read the delivery attempt | attempts.list |
| 9 | Clean up | endpoints.disable |
Pick a way to run it
- curl — a shell script, nothing to install but
curlandjq. - JavaScript — the published SDK on plain Node.
- The command line — one command per step, nothing to write.