API Reference
Condescension, Programmatically
REST, because we need it after talking to you. Every endpoint below is fully interactive and completely fictional — which, if you have used an API recently, may not feel like much of a distinction.
OpenAPI 3.1 · snark-api v2.0 · nothing leaves this page
Not authorized. Endpoints will refuse you politely, then keep refusing.
Endpoints
POST /v1/eyeroll
Sends one eye-roll to the specified target. Intensity above 90 requires a signed waiver from your optometrist. Delivery is instant; acknowledgement is never.
operationId: dispatchEyeroll · tag: Expressions
Parameters
No parameters. There is nothing to configure and nothing to blame.
Request body · application/json
intensity integer required 0–100. Values above 90 are dispatched but disclaimed.
target string required What earned it. Be specific — vagueness reads as cowardice.
audible boolean Adds the sigh. Defaults to true, because it always was.
Responses
200 Rolled. Nobody saw it, which is the point.
400 That's On You — intensity outside 0–100.
429 Too Many Feelings — you are rolling faster than we can render.
GET /v1/sigh
Returns a sigh over Server-Sent Exhales. The connection stays open slightly longer than is comfortable, which is a feature and was expensive to build.
operationId: streamSigh · tag: Expressions
Parameters
depth string (query) One of shallow, weary, existential. Defaults to weary.
audible boolean (query) Whether anyone nearby should have to hear it.
Responses
200 Exhaled. Duration scales with depth.
429 Too Many Feelings — take a walk. Reflect.
POST /v1/comeback
Produces the reply that would have ended the conversation, timed to arrive after it. The delay is not a latency problem. The delay is the product.
operationId: generateComeback · tag: Language
Parameters
No parameters. There is nothing to configure and nothing to blame.
Request body · application/json
setup string required What they said. Paste it exactly; paraphrasing flatters them.
delay string Requested delivery time. Accepted, logged, and ignored.
swallow boolean If true, you keep it to yourself. Defaults to true.
Responses
200 Generated. Arriving in roughly three hours.
402 Payment Required — comebacks over twelve words are a paid tier.
429 Too Many Feelings — one conversation at a time.
DELETE /v1/enthusiasm
Idempotent. Calling it twice changes nothing, because there was nothing left after the first time. Calling it once changes nothing either, for the same reason.
operationId: deleteEnthusiasm · tag: Maintenance
Parameters
No parameters. There is nothing to configure and nothing to blame.
Responses
200 Already gone. Has been since 2009.
204 No Comment — we saw the request and have nothing nice to say.
DELETE /v1/unsubscribe
Present for compliance reasons, and for no other reason whatsoever. Returns 200 in every case. The value of removed is documented below and is always false.
operationId: requestUnsubscribe · tag: Compliance
Parameters
confirm boolean (query) required Must be true. Will not be read.
reason string (query) Why you are leaving. Goes to a channel with no owner.
Responses
200 Received. Nothing further will happen.
429 Too Many Feelings — you have tried this before.
Status Codes
200 Fine.
The request worked. Try not to make it weird.
204 No Comment
We saw it. We have nothing nice to say.
400 That's On You
The request was malformed, much like the idea behind it.
401 Who Are You, Even
Missing or unconvincing credentials. There is a button for this.
402 Payment Required
Your card was declined. So, in fairness, was your idea.
418 I'm a Teapot
Preserved out of respect. The only sincere thing in this spec.
429 Too Many Feelings
Rate limited. Take a walk. Reflect.
500 We're Not Mad, Just Disappointed
Something broke on our end. We blame you anyway.
Official SDKs
Available in JavaScript, Python, and Sighs. The Sighs SDK is just a WAV file, and honestly it's our most expressive one.
Changelog
- v2.0 — 40% more passive-aggressive. You're welcome.
- v1.4 — Fixed a bug where compliments could occur.
- v1.0 — Initial release. Regretted immediately.
Questions? See status code 204.