openapi: 3.2.0 info: title: RootRewards Quest Campaigns API version: '2025-08-16' summary: Retrieve quest and campaign information and allocate RootRewards points to FuturePass addresses. description: 'The RootRewards Quest API lets an approved external service read quest and campaign detail and allocate points from a quest budget to a FuturePass (Pass) address on The Root Network. PROVENANCE — this document was GENERATED by API Evangelist from Futureverse''s own published reference at https://docs.therootnetwork.com/rootrewards/api-reference (HTTP 200, fetched 2026-08-16) and the companion testing guide at https://docs.therootnetwork.com/rootrewards/testing-instructions (HTTP 200). Futureverse does NOT publish an OpenAPI description for this API. Every path, parameter, header, request body, response shape and status code below is transcribed from those two pages; nothing is invented. BASE URL IS NOT PUBLISHED. The reference states verbatim: "You will receive the Base URL, API key, and testing instructions when your Quest application is approved." The `server` block below therefore carries a REQUIRED variable rather than a guessed host — API Evangelist has not seen the real host and will not fabricate one.' contact: name: The Root Network documentation url: https://docs.therootnetwork.com/rootrewards/overview x-provenance: generated: '2026-08-16' method: generated generated-by: API Evangelist enrichment pipeline (local-v1) source: https://docs.therootnetwork.com/rootrewards/api-reference source-status: 200 first-party: false servers: - url: '{baseUrl}' description: Base URL is issued privately to approved Quest applications and is not published. A separate staging base URL is issued for API-only testing. variables: baseUrl: default: https://REPLACE-WITH-BASE-URL-ISSUED-ON-APPROVAL description: The base URL Futureverse issues when a Quest application is approved. security: - questApiKey: [] tags: - name: campaigns description: Public campaign detail. Campaigns group quests but hold no balances. paths: /campaigns/{id}: get: operationId: getCampaign tags: - campaigns summary: Get campaign details description: Retrieves public campaign details and the quests it groups. No API key required. security: [] parameters: - name: id in: path required: true description: Numeric ID of the campaign. schema: type: integer responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Campaign' '400': description: Campaign is disabled or bad request '404': description: Campaign not found components: schemas: CampaignQuest: type: object properties: id: type: integer name: type: string description: type: string created_at: type: string format: date-time updated_at: type: string format: date-time start: type: string format: date-time end: type: string format: date-time is_public: type: boolean total_points: type: integer expected_points_per_completion: type: integer owner_id: type: string campaign_id: type: integer Campaign: type: object properties: id: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time name: type: string description: type: string start: type: string format: date-time end: type: string format: date-time is_active: type: boolean external_app_id: type: - string - 'null' quests: type: array items: $ref: '#/components/schemas/CampaignQuest' securitySchemes: questApiKey: type: apiKey in: header name: x-api-key description: Quest API key. Must start with the prefix `sk_` and be associated with the quest owner account. Issued on Quest application approval; never expose it in client-side code.