Mint Reputation Grant
Reputation Grant Endpoints
Mint Reputation Grant
Create reputation from nothing — or destroy it — and credit a user’s bucket
Mint Reputation Grant
Mints reputation: it is created from nothing and credited to a user, with no sender and nothing debited. A mint is the app speaking, not a person — contest payouts, bounty settlements, staff picks, welcome bonuses.
A mint may also be negative, which is the only way to take reputation away: a moderation clawback, a decay sweep, or a correction to a mistaken grant. A negative mint may drive a bucket below zero (buckets have no floor).
Service or master key only. A user token never reaches this route. Blocks are ignored, suspension is not consulted (there is no acting user), and a
There is deliberately no actor field. The grant is written with a
Also returned for a fractional amount (
The
Returned whether the recipient was already gone or was deleted while the mint was in flight — the two answers are byte-identical, and neither leaks the underlying constraint.
The target record does not exist. A mint is not membership-checked, so a
Rate limit: 50 requests per 5 minutes per IP. Exceeding it returns
chat-message target is not membership-checked — the app is trusted.
Requires the reputation bundle.
Body Parameters
string
required
UUID of the user credited — or, with a negative amount, debited.
number
required
Any non-zero whole number between
-2147483648 and 2147483647. Negatives destroy reputation.string | null
UUID of the space whose bucket is credited. Omitted or
null means the project-general bucket. The space is validated before anything is written — a bucket for a space that does not exist would count toward its owner’s profile total while being invisible in every space-scoped view. An ID that names no space is rejected with 404 reputation-grant/space-not-found, and naming a space on a project without the spaces bundle is rejected with 403 database/tables-not-available. Transfers are validated the same way.string | null
Free-text note. Trimmed, up to 2000 characters.
object
Arbitrary key-value data. Up to 1 MB. Omit the key when unused —
null is not accepted.string
What the grant is for:
"entity", "comment", or "chat-message". Must be supplied together with targetId.string
UUID of the rewarded record. Must be supplied together with
targetType, and must exist at the time of granting.null senderId and sourceType: "app".
Response
Returns201 with the created ReputationGrant.
A positive mint notifies the recipient and, for a chat-message target, broadcasts message:grant to the conversation. A negative mint is entirely silent: no notification, no broadcast, and invisible on every public read surface. Read it back from Fetch User Grant History.
Error Responses
Invalid Body — 400
Invalid Body — 400
"amount: Invalid input: expected int, received number") or one outside the signed 32-bit range ("amount: Too big: expected number to be <=2147483647"). Field-level failures are prefixed with the field path, so error reads "<path>: <message>". The one whole-body rule has no path and so no prefix: supplying targetType without targetId (or the reverse) returns "targetType and targetId must be supplied together".Elevated Auth Required — 403
Elevated Auth Required — 403
Tables Not Available — 403
Tables Not Available — 403
reputation bundle is missing, a spaceId was supplied on a project without spaces, or the target’s bundle is absent (e.g. a chat-message target without chat). missingTables names exactly what is absent.User Not Found — 404
User Not Found — 404
Space Not Found — 404
Space Not Found — 404
Target Not Found — 404
Target Not Found — 404
chat-message target only has to exist.Conflict — 409
Conflict — 409
429 with a plain-text message and no code.
See also: node-sdk mintGrant · Create Reputation Grant
