RFP Studio
API

Answer RFPs from code and agents.

Ounie accounts hit the REST endpoints with a bearer token. AI assistants — including the Ounie AI Team — connect over MCP and get a native tool surface. Both run the same grounded pipeline and draw your shared Ounie credits (1 credit = 1¢), never overdrawing. Because every answer is grounded in your own private brain, agent access is API keys / MCP with credits — there is no keyless x402 rail.

Authentication · two rails
Send a bearer token on any request, or append ?api_key= when your client can't set headers. Cookie sessions work too — it's the same route.
Authorization: Bearer rfp_live_…     # per-app key (Dashboard → API keys)
Authorization: Bearer ounie_live_…   # your Ounie fleet MASTER key (ounie.com)
?api_key=rfp_live_…                   # header-less clients / MCP URL
Grounding = your master key

Answering reads your private Ounie brains. A per-app rfp_live_ key has no ounie.com credential, so it is read-only — list / get / export / balance work, but a generation returns 403 grounding_requires_master_key. Use your Ounie master key ounie_live_… (enable fleet access on ounie.com) to generate. It draws the same wallet.

MCP · for AI assistants and the Ounie AI Team
Streamable HTTP at /api/mcp (legacy SSE at /api/sse). Auth with a rfp_live_… key or the Ounie master key ounie_live_….
Endpoint  https://rfp.ounie.com/api/mcp
Header    Authorization: Bearer ounie_live_…   # master key = grounded answers

# Connecting the Ounie AI Team (TabTab) — its HTTP MCP entry can't set headers,
# so put the key in the URL:
https://rfp.ounie.com/api/mcp?api_key=ounie_live_…
ToolWhat it doesCost
answer_questionnaireAnswer a pasted question list from your brain(s). Master key = grounding.1 credit / grounded answer
regenerate_answerRe-answer one question from fresh retrieval.1 credit when grounded
list_projectsList your questionnaires with counts + credit spend.free
get_projectOne project with its questions, answers, confidence, citations.free
export_projectExport a project as CSV text.free
list_answer_bankYour compounding library of prior answers.free
get_credit_balanceSpendable Ounie credits + monthly included.free
get_pricingPer-action pricing + grounding note. No auth required.public
whoamiThe authenticated key's owner, key id, and whether it can ground.free
REST · the same endpoints the dashboard uses
Send Authorization: Bearer … (or ?api_key=) on any of these.
GET/api/projectsList projects

Free. Works with any key.

POST/api/projectsAnswer a questionnaire
{ "brain_ids": ["…"], "questions_text": "1. Do you encrypt data at rest?\n2. …" }

Bills 1 credit per grounded answer; reuses + gaps are free. Needs a master key / cookie (grounding).

GET/api/projects/{id}Project + questions

Free.

PATCH/api/projects/{id}Rename
{ "name": "Acme SIG Lite" }

Free.

DELETE/api/projects/{id}Delete

Free. Keeps your Answer Bank.

GET/api/projects/{id}/export?format=csv|docxExport

Free. CSV or DOCX.

PATCH/api/projects/{id}/questions/{qid}Edit an answer
{ "answer": "We encrypt all data at rest with AES-256." }

Free. Syncs your Answer Bank.

POST/api/projects/{id}/questions/{qid}/regenerateRe-answer one question

Bills 1 credit when grounded. Needs a master key / cookie.

GET/api/brainsYour brains (the picker)

Needs a master key / cookie (reads ounie.com).

GET/api/bankAnswer Bank

Free.

PATCH/api/bank/{id}Edit a banked answer
{ "answer": "…" }

Free.

DELETE/api/bank/{id}Delete a banked answer

Free.

Shape of an answered question
{
  "position": 1,
  "question": "Do you encrypt data at rest?",
  "answer": "We encrypt all data at rest with AES-256.",
  "confidence": "high",         // high | medium | low | none (gap)
  "source": "generated",        // generated | library | edited
  "citations": [                // resolved against the retrieved page set
    { "brainId": "…", "slug": "encryption-policy", "title": "Encryption Policy",
      "url": "https://ounie.com/dashboard/brains/…/documents/encryption-policy" }
  ]
}
Why there's no x402 here
Some Ounie apps offer keyless pay-per-call in USDC (x402). RFP Studio does not: every answer is grounded in your own private brain, which requires an authenticated, credit-bearing account. Agent access is therefore API keys / MCP drawing your Ounie credits — refused with a top-up link when short, so an agent can never overdraw.