{"openapi":"3.1.0","info":{"title":"Ardent Africa Public API","version":"1.0.0","description":"Read-only public API for campaigns, petitions, events, marketplace listings, blog posts, public profiles, and platform stats.\n\nSend an `x-api-key` header for the higher rate tier; keyless access is allowed at a lower tier. No credential grants write access — this surface is read-only. It never returns donor, signer, organizer, or creator PII, nor internal fields.\n\nSee https://docs.ardent.africa/docs/developers for guides, authentication, and rate limits.","contact":{"name":"Ardent Africa developers","url":"https://docs.ardent.africa/docs/developers"}},"servers":[{"url":"https://api.ardent.africa/public/v1","description":"Production"}],"security":[{},{"ApiKeyAuth":[]}],"tags":[{"name":"Campaigns"},{"name":"Petitions"},{"name":"Events"},{"name":"Marketplace"},{"name":"Blog"},{"name":"Profiles"},{"name":"Stats"}],"paths":{"/campaigns":{"get":{"summary":"List active and won fundraising campaigns","tags":["Campaigns"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 50).","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"category","in":"query","required":false,"description":"Filter by category.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Filter by target country code, e.g. GH.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Campaign"}},"page":{"type":"integer","examples":[1]},"limit":{"type":"integer","examples":[20]},"total":{"type":"integer","examples":[0]}},"required":["data","page","limit","total"]}}}},"400":{"description":"Invalid query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/campaigns/{slug}":{"get":{"summary":"Get a campaign by slug, with its public updates","tags":["Campaigns"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignDetail"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/petitions":{"get":{"summary":"List active petitions","tags":["Petitions"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 50).","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"category","in":"query","required":false,"description":"Filter by category.","schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"Filter by target country code.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Petition"}},"page":{"type":"integer","examples":[1]},"limit":{"type":"integer","examples":[20]},"total":{"type":"integer","examples":[0]}},"required":["data","page","limit","total"]}}}},"400":{"description":"Invalid query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/petitions/{slug}":{"get":{"summary":"Get a petition by slug, with aggregate momentum","tags":["Petitions"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PetitionDetail"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/events":{"get":{"summary":"List published events","tags":["Events"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 50).","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"q","in":"query","required":false,"description":"Full-text search.","schema":{"type":"string"}},{"name":"event_type","in":"query","required":false,"description":"Filter by event type.","schema":{"type":"string"}},{"name":"category","in":"query","required":false,"description":"Filter by category.","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Filter by location (substring match).","schema":{"type":"string"}},{"name":"is_paid","in":"query","required":false,"description":"Only paid (true) or free/RSVP (false) events.","schema":{"type":"boolean"}},{"name":"is_online","in":"query","required":false,"description":"Only online (true) or in-person (false) events.","schema":{"type":"boolean"}},{"name":"date_from","in":"query","required":false,"description":"Only events starting on/after this ISO date.","schema":{"type":"string"}},{"name":"date_to","in":"query","required":false,"description":"Only events starting on/before this ISO date.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"page":{"type":"integer","examples":[1]},"limit":{"type":"integer","examples":[20]},"total":{"type":"integer","examples":[0]}},"required":["data","page","limit","total"]}}}},"400":{"description":"Invalid query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/events/{slug}":{"get":{"summary":"Get an event by slug, with content blocks and ticket tiers","tags":["Events"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDetail"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/marketplace/services":{"get":{"summary":"List active marketplace listings","tags":["Marketplace"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 50).","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"q","in":"query","required":false,"description":"Full-text search.","schema":{"type":"string"}},{"name":"listing_type","in":"query","required":false,"description":"Filter by listing type.","schema":{"type":"string","enum":["service","goods"]}},{"name":"category","in":"query","required":false,"description":"Filter by category slug.","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Filter by location (substring match).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceListing"}},"page":{"type":"integer","examples":[1]},"limit":{"type":"integer","examples":[20]},"total":{"type":"integer","examples":[0]}},"required":["data","page","limit","total"]}}}},"400":{"description":"Invalid query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/marketplace/services/{id}":{"get":{"summary":"Get a marketplace listing by id","tags":["Marketplace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceListingDetail"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/marketplace/categories":{"get":{"summary":"List active marketplace categories","tags":["Marketplace"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MarketplaceCategory"}}},"required":["data"]}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/blog":{"get":{"summary":"List published blog posts","tags":["Blog"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Items per page (max 50).","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"category","in":"query","required":false,"description":"Filter by category id.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BlogListItem"}},"page":{"type":"integer","examples":[1]},"limit":{"type":"integer","examples":[20]},"total":{"type":"integer","examples":[0]}},"required":["data","page","limit","total"]}}}},"400":{"description":"Invalid query parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/blog/{slug}":{"get":{"summary":"Get a published blog post by slug","tags":["Blog"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/profiles/{username}":{"get":{"summary":"Get a public supporter profile","tags":["Profiles"],"parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/stats":{"get":{"summary":"Platform-level aggregate stats","tags":["Stats"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"429":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Optional. Keyless requests are limited to 30 requests/minute; a valid key raises the limit to 600/minute and enables attribution. Request a key per https://docs.ardent.africa/docs/developers/authentication."}},"schemas":{"Campaign":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"goal_amount":{"type":"number"},"raised_amount":{"type":"number"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"progress":{"type":"object","properties":{"raised_amount":{"type":"number"},"goal_amount":{"type":"number"},"percent":{"type":"number"}},"required":["raised_amount","goal_amount","percent"]},"goal_reached_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"deadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"}},"required":["id","slug","title","description","category","status","goal_amount","raised_amount","image_url","country","target_country","target_country_name","progress","goal_reached_at","deadline","created_at"]},"CampaignDetail":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"goal_amount":{"type":"number"},"raised_amount":{"type":"number"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"progress":{"type":"object","properties":{"raised_amount":{"type":"number"},"goal_amount":{"type":"number"},"percent":{"type":"number"}},"required":["raised_amount","goal_amount","percent"]},"goal_reached_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"deadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"},"updates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"content":{"type":"string"},"media_urls":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string"}},"required":["id","title","content","media_urls","created_at"]}}},"required":["id","slug","title","description","category","status","goal_amount","raised_amount","image_url","country","target_country","target_country_name","progress","goal_reached_at","deadline","created_at","updates"]},"Petition":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"petition_target":{"anyOf":[{"type":"number"},{"type":"null"}]},"signatures_count":{"type":"number"},"target_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"progress":{"type":"object","properties":{"signatures_count":{"type":"number"},"petition_target":{"anyOf":[{"type":"number"},{"type":"null"}]},"percent":{"type":"number"}},"required":["signatures_count","petition_target","percent"]},"created_at":{"type":"string"}},"required":["id","slug","title","description","category","status","petition_target","signatures_count","target_country","target_country_name","country","image_url","progress","created_at"]},"PetitionDetail":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"},"petition_target":{"anyOf":[{"type":"number"},{"type":"null"}]},"signatures_count":{"type":"number"},"target_country":{"anyOf":[{"type":"string"},{"type":"null"}]},"target_country_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"progress":{"type":"object","properties":{"signatures_count":{"type":"number"},"petition_target":{"anyOf":[{"type":"number"},{"type":"null"}]},"percent":{"type":"number"}},"required":["signatures_count","petition_target","percent"]},"created_at":{"type":"string"},"momentum":{"type":"object","properties":{"signatures_last_7_days":{"type":"number"}},"required":["signatures_last_7_days"]}},"required":["id","slug","title","description","category","status","petition_target","signatures_count","target_country","target_country_name","country","image_url","progress","created_at","momentum"]},"Event":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"event_type":{"type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"start_date":{"type":"string"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"type":"string"},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_online":{"type":"boolean"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_paid":{"type":"boolean"},"currency":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"is_featured":{"type":"boolean"},"created_at":{"type":"string"}},"required":["id","slug","title","description","event_type","category","start_date","end_date","timezone","location","is_online","image_url","is_paid","currency","tags","is_featured","created_at"]},"EventDetail":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"event_type":{"type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"start_date":{"type":"string"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"type":"string"},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_online":{"type":"boolean"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"is_paid":{"type":"boolean"},"currency":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"is_featured":{"type":"boolean"},"created_at":{"type":"string"},"agenda":{"type":"array","items":{}},"speakers":{"type":"array","items":{}},"sponsors":{"type":"array","items":{}},"gallery":{"type":"array","items":{}},"ticket_tiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"price_pesewas":{"type":"number"},"currency":{"type":"string"},"is_available":{"type":"boolean"}},"required":["id","name","description","price_pesewas","currency","is_available"]}}},"required":["id","slug","title","description","event_type","category","start_date","end_date","timezone","location","is_online","image_url","is_paid","currency","tags","is_featured","created_at","agenda","speakers","sponsors","gallery","ticket_tiers"]},"MarketplaceListing":{"type":"object","properties":{"id":{"type":"string"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"listing_type":{"type":"string"},"category_slugs":{"type":"array","items":{"type":"string"}},"price_min_pesewas":{"anyOf":[{"type":"number"},{"type":"null"}]},"price_max_pesewas":{"anyOf":[{"type":"number"},{"type":"null"}]},"currency":{"type":"string"},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"rating":{"anyOf":[{"type":"number"},{"type":"null"}]},"review_count":{"type":"number"},"is_verified":{"type":"boolean"},"is_featured":{"type":"boolean"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"supports_campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"}},"required":["id","slug","title","description","listing_type","category_slugs","price_min_pesewas","price_max_pesewas","currency","location","rating","review_count","is_verified","is_featured","cover_url","supports_campaign_id","created_at"]},"MarketplaceListingDetail":{"type":"object","properties":{"id":{"type":"string"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"listing_type":{"type":"string"},"category_slugs":{"type":"array","items":{"type":"string"}},"price_min_pesewas":{"anyOf":[{"type":"number"},{"type":"null"}]},"price_max_pesewas":{"anyOf":[{"type":"number"},{"type":"null"}]},"currency":{"type":"string"},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"rating":{"anyOf":[{"type":"number"},{"type":"null"}]},"review_count":{"type":"number"},"is_verified":{"type":"boolean"},"is_featured":{"type":"boolean"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"supports_campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"},"packages":{"type":"array","items":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"price_pesewas":{"anyOf":[{"type":"number"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"delivery_days":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["name","price_pesewas","currency","description","delivery_days"]}},"portfolio_urls":{"type":"array","items":{"type":"string"}},"languages":{"type":"array","items":{"type":"string"}}},"required":["id","slug","title","description","listing_type","category_slugs","price_min_pesewas","price_max_pesewas","currency","location","rating","review_count","is_verified","is_featured","cover_url","supports_campaign_id","created_at","packages","portfolio_urls","languages"]},"MarketplaceCategory":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"}},"required":["id","slug","name","kind"]},"BlogListItem":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}]},"published_at":{"type":"string"},"featured_image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"blog_categories":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},{"type":"null"}]}},"required":["title","slug","excerpt","published_at","featured_image_url","blog_categories"]},"BlogPost":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"excerpt":{"anyOf":[{"type":"string"},{"type":"null"}]},"content":{"type":"string"},"published_at":{"type":"string"},"featured_image_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"]},{"type":"null"}]}},"required":["title","slug","excerpt","content","published_at","featured_image_url","category"]},"Profile":{"type":"object","properties":{"username":{"type":"string"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"bio":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"account_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"signatures_count":{"type":"number"}},"required":["username","full_name","bio","avatar_url","country","account_type","signatures_count"]},"Stats":{"type":"object","properties":{"total_active_campaigns":{"type":"number"},"total_campaigns":{"type":"number"},"countries_reached":{"type":"number"},"total_funds_raised":{"type":"number"},"total_signatures":{"type":"number"}},"required":["total_active_campaigns","total_campaigns","countries_reached","total_funds_raised","total_signatures"]},"ErrorEnvelope":{"type":"object","properties":{"ok":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string","enum":["UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","VALIDATION_FAILED","RATE_LIMITED","FUNDRAISING_DISABLED","FEATURE_DISABLED","SERVICE_UNAVAILABLE","INTERNAL"]},"message":{"type":"string"},"ref":{"type":"string"}},"required":["code","message","ref"]}},"required":["ok","error"]}}}}