AI Power Ups
Contents

Reference

POST /v1/sharpen

A synchronous second-opinion review of a draft answer by a model from a different family. operationId sharpen. Request and response are stable contracts (SharpenRequest, SharpenResponse).

Request

Sharpen request fields
FieldTypeRequiredDefaultConstraints and description
taskstringyesmin length 1
What the user asked for, verbatim or close.
contextstringnoFacts, constraints, data the reviewer needs to judge the draft.
approachstringnoHow the draft was produced: assumptions, method, trade-offs.
draftstringyesmin length 1
The answer to be reviewed.
caller_provider"openai" | "anthropic" | "google" | "xai" | "deepseek" | "meta" | "mistral" | "other"yes
stage"stage1" | "stage2" | "stage3" | "stage3+"noStages: stage1 = Stage 1 (sharpen), stage2 = Stage 2 (plus), stage3 = Stage 3 (ultra), stage3+ = Stage 3+ (ultra2x, two independent reviewers). Stock means Sharpen is disabled. Omit stage to use the saved setting; for an explicit request such as "take it to Stage 3+", pass stage: "stage3+". A per-call stage never changes the saved setting and requires Sharpen to be enabled.
  • Unknown keys are rejected with 400 invalid_request.
  • caller_provider is the family of the model that wrote the draft; the reviewer is always a different family.
  • stage selects the review stage for this call only (stage1stage3+). Omit it to use the account's saved tier. Sharpen must be enabled on the account; a per-call stage cannot enable it.
  • Combined input is capped at 60,000 characters.
curl
curl -s -X POST https://api.powerups-ai.store/v1/sharpen \
  -H "Authorization: Bearer $AIPA_API_KEY" -H "Content-Type: application/json" -d '{
  "task": "<what the user asked, verbatim>",
  "context": "<facts, constraints and data the reviewer needs>",
  "approach": "<how the draft was produced: assumptions, method>",
  "draft": "<the full draft answer>",
  "caller_provider": "anthropic"
}'

Response

{
  "tier": "sharpen" | "plus" | "ultra" | "ultra2x",
  "stage"?: "stage1" | "stage2" | "stage3" | "stage3+",
  "reviews": [ { "reviewer": { "family": "google", "model": "google/…" }, "review": "…" } ],
  "partial": false,            // true on ultra2x when one of the two reviewers failed
  "routing_note"?: "…",
  "instruction": "…",          // how to apply the review
  "charged_credits": 5,
  "balance": { "used": 17, "cap": 500, "period_end": null }
}

Typical credits by tier: 5, 30, 120, 240. The actual reviewer cost is metered; when a reviewer fails the next roster entry is tried, and when none answers the call returns 503 sharpen_no_reviewer without charge. Timeouts are 30, 60 and 120 seconds per pass by tier, so set your client timeout accordingly.

REST Sharpen is synchronous and has no idempotency key. The MCP tool of the same name is asynchronous with a 24-hour request_id dedupe; that is an MCP-only feature described in the assistant docs.