{"openapi":"3.0.0","paths":{"/api/v1/offerwall/offers":{"get":{"operationId":"OfferwallApiController_getOffers","parameters":[{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}},{"name":"country","required":false,"in":"query","description":"ISO 3166-1 alpha-2 country code.","schema":{"example":"US","type":"string"}},{"name":"device","required":false,"in":"query","schema":{"example":"web","type":"string","enum":["android","ios","web"]}},{"name":"category","required":false,"in":"query","description":"Canonical category name.","schema":{"maxLength":80,"type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"popular","type":"string","enum":["popular","recommended","hot","payout-high","payout-low","conversion","epc","trending","newest","easiest"]}},{"name":"search","required":false,"in":"query","description":"Case-insensitive search over public offer text.","schema":{"maxLength":100,"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"maximum":1000,"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"List eligible offers and surveys for one verified visitor","tags":["Offerwall"]}},"/api/v1/offerwall/categories":{"get":{"operationId":"OfferwallApiController_getCategories","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"List canonical categories available to the simulated offerwall","tags":["Offerwall"]}},"/api/v1/offerwall/activity":{"get":{"operationId":"OfferwallApiController_getActivity","parameters":[{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicActivityDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Count this visitor’s in-progress and completed catalogue items","tags":["Offerwall"]}},"/api/v1/offerwall/stats":{"get":{"operationId":"OfferwallApiController_getStats","parameters":[{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStatsResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Read global offerwall reward, completion and streak statistics","tags":["Offerwall"]}},"/api/v1/offerwall/offers/{id}":{"get":{"operationId":"OfferwallApiController_getOffer","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}},{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueItemDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Read one eligible offerwall item","tags":["Offerwall"]}},"/api/v1/offerwall/offers/{id}/start":{"post":{"operationId":"OfferwallApiController_startOffer","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartOfferDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Create or reuse an idempotent click and return its safe redirect","tags":["Offerwall"]}},"/api/v1/surveys":{"get":{"operationId":"SurveysApiController_getSurveys","parameters":[{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}},{"name":"country","required":false,"in":"query","description":"ISO 3166-1 alpha-2 country code.","schema":{"example":"US","type":"string"}},{"name":"device","required":false,"in":"query","schema":{"example":"web","type":"string","enum":["android","ios","web"]}},{"name":"category","required":false,"in":"query","description":"Canonical category name.","schema":{"maxLength":80,"type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"popular","type":"string","enum":["popular","recommended","hot","payout-high","payout-low","conversion","epc","trending","newest","easiest"]}},{"name":"search","required":false,"in":"query","description":"Case-insensitive search over public offer text.","schema":{"maxLength":100,"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"maximum":1000,"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"List eligible canonical survey rows for one verified visitor","tags":["Surveys"]}},"/api/v1/surveys/activity":{"get":{"operationId":"SurveysApiController_getActivity","parameters":[{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicActivityDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Count this visitor’s in-progress and completed surveys","tags":["Surveys"]}},"/api/v1/surveys/{id}":{"get":{"operationId":"SurveysApiController_getSurvey","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}},{"name":"appToken","required":true,"in":"query","description":"Public application token. This is the app apiKey, never its database id.","schema":{"example":"public-app-token","type":"string"}},{"name":"userId","required":true,"in":"query","description":"Stable pseudonymous publisher user id. Do not send personal data.","schema":{"maxLength":255,"example":"user-42","type":"string"}},{"name":"secureHash","required":false,"in":"query","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","schema":{"pattern":"^[0-9a-f]{64}$","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueItemDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Read one eligible survey","tags":["Surveys"]}},"/api/v1/surveys/{id}/start":{"post":{"operationId":"SurveysApiController_startSurvey","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartOfferDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorDto"}}}}},"summary":"Create or reuse an idempotent survey click and return its redirect","tags":["Surveys"]}},"/api/v1/mobile/sessions":{"post":{"operationId":"MobileSessionsController_mint","parameters":[{"name":"x-offerlia-signature","in":"header","description":"sha256=<lowercase HMAC-SHA256 over the canonical mint message>","schema":{"type":"string"}},{"name":"x-offerlia-request-id","in":"header","description":"Fresh lowercase UUID v4","schema":{"type":"string"}},{"name":"x-offerlia-timestamp","in":"header","description":"Current Unix seconds","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileSessionMintDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileSessionResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"409":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"summary":"Mint a short-lived visitor bearer from a publisher server","tags":["Mobile sessions"]}},"/api/v1/mobile/sessions/current":{"delete":{"operationId":"MobileSessionsController_revoke","parameters":[],"responses":{"204":{"description":""},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"summary":"Revoke the current mobile visitor session","tags":["Mobile sessions"]}},"/api/v1/mobile/offerwall/offers":{"get":{"operationId":"MobileOfferwallApiController_getOffers","parameters":[{"name":"country","required":false,"in":"query","description":"ISO 3166-1 alpha-2 country code.","schema":{"example":"US","type":"string"}},{"name":"device","required":false,"in":"query","schema":{"example":"web","type":"string","enum":["android","ios","web"]}},{"name":"category","required":false,"in":"query","description":"Canonical category name.","schema":{"maxLength":80,"type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"popular","type":"string","enum":["popular","recommended","hot","payout-high","payout-low","conversion","epc","trending","newest","easiest"]}},{"name":"search","required":false,"in":"query","description":"Case-insensitive search over public offer text.","schema":{"maxLength":100,"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"maximum":1000,"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"summary":"List eligible offers and surveys for the bearer visitor","tags":["Mobile offerwall"]}},"/api/v1/mobile/offerwall/categories":{"get":{"operationId":"MobileOfferwallApiController_getCategories","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile offerwall"]}},"/api/v1/mobile/offerwall/activity":{"get":{"operationId":"MobileOfferwallApiController_getActivity","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicActivityDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile offerwall"]}},"/api/v1/mobile/offerwall/stats":{"get":{"operationId":"MobileOfferwallApiController_getStats","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStatsResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile offerwall"]}},"/api/v1/mobile/offerwall/offers/{id}":{"get":{"operationId":"MobileOfferwallApiController_getOffer","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueItemDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile offerwall"]}},"/api/v1/mobile/offerwall/offers/{id}/start":{"post":{"operationId":"MobileOfferwallApiController_startOffer","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileStartOfferDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile offerwall"]}},"/api/v1/mobile/surveys":{"get":{"operationId":"MobileSurveysApiController_getSurveys","parameters":[{"name":"country","required":false,"in":"query","description":"ISO 3166-1 alpha-2 country code.","schema":{"example":"US","type":"string"}},{"name":"device","required":false,"in":"query","schema":{"example":"web","type":"string","enum":["android","ios","web"]}},{"name":"category","required":false,"in":"query","description":"Canonical category name.","schema":{"maxLength":80,"type":"string"}},{"name":"sortBy","required":false,"in":"query","schema":{"default":"popular","type":"string","enum":["popular","recommended","hot","payout-high","payout-low","conversion","epc","trending","newest","easiest"]}},{"name":"search","required":false,"in":"query","description":"Case-insensitive search over public offer text.","schema":{"maxLength":100,"type":"string"}},{"name":"limit","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"default":50,"type":"number"}},{"name":"offset","required":false,"in":"query","schema":{"minimum":0,"maximum":1000,"default":0,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile surveys"]}},"/api/v1/mobile/surveys/activity":{"get":{"operationId":"MobileSurveysApiController_getActivity","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicActivityDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile surveys"]}},"/api/v1/mobile/surveys/{id}":{"get":{"operationId":"MobileSurveysApiController_getSurvey","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCatalogueItemDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"404":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile surveys"]}},"/api/v1/mobile/surveys/{id}/start":{"post":{"operationId":"MobileSurveysApiController_startSurvey","parameters":[{"name":"id","required":true,"in":"path","description":"Offerlia catalogue item id.","schema":{"maxLength":255,"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileStartOfferDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStartResponseDto"}}}},"400":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"401":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"403":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}},"429":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileErrorDto"}}}}},"security":[{"mobileBearer":[]}],"tags":["Mobile surveys"]}}},"info":{"title":"Offerlia Offerwall and Surveys API","description":"Build a custom publisher interface on the same catalogue, audience and click engine as the Offerlia iframe.\n\nThis API is restricted to TEST applications while FINANCIAL_MODE=simulated.\n\nEvery visitor is identified by appToken + pseudonymous userId. SIGNED apps also require secureHash = HMAC-SHA256(embedSecret, \"v1\\n\" + appToken + \"\\n\" + userId).\n\nCall a start endpoint before redirecting. Offerlia never accepts a provider redirect URL from the client.\n\nPublisher browser origins may call /api/v1 without credentials using GET, POST and Content-Type only.\n\nNative clients use a short-lived bearer minted by a publisher server. The bearer fixes the app and pseudonymous visitor identity and must never appear in a URL.\n\nOnly the separately signed publisher callback authorizes the publisher to credit its user; client lifecycle events are informational.","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"mobileBearer":{"scheme":"bearer","bearerFormat":"opaque","type":"http"}},"schemas":{"PublicErrorDto":{"type":"object","properties":{"statusCode":{"type":"number","example":400},"message":{"description":"One error message, or the validation constraint messages produced by Nest ValidationPipe.","oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"example":"Invalid embed identity"},"error":{"type":"string","example":"Bad Request"}},"required":["statusCode","message"]},"BonusBreakdownDto":{"type":"object","properties":{"base":{"type":"number"},"bonus":{"type":"number"},"bonusPercentage":{"type":"number"},"final":{"type":"number"}},"required":["base","bonus","bonusPercentage","final"]},"PublicCatalogueItemDto":{"type":"object","properties":{"id":{"type":"string"},"provider":{"type":"string"},"externalId":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true},"imageUrl":{"type":"string","nullable":true},"previewUrl":{"type":"string","nullable":true},"category":{"type":"string"},"device":{"type":"string"},"offerType":{"type":"string"},"paymentModel":{"type":"string","nullable":true},"rewardDelay":{"type":"string"},"multipleConversionsAllowed":{"type":"boolean"},"completionsThisMonth":{"type":"number","nullable":true},"amount":{"type":"number"},"currencyName":{"type":"string"},"bonusBreakdown":{"$ref":"#/components/schemas/BonusBreakdownDto"},"userStatus":{"type":"string","enum":["available","clicked","started","completed","reversed"]}},"required":["id","provider","externalId","title","description","instructions","logoUrl","imageUrl","previewUrl","category","device","offerType","paymentModel","rewardDelay","multipleConversionsAllowed","completionsThisMonth","amount","currencyName","bonusBreakdown","userStatus"]},"PublicAppMetadataDto":{"type":"object","properties":{"name":{"type":"string"},"currencyName":{"type":"string","nullable":true},"currencyExchangeRate":{"type":"number"},"bonusActive":{"type":"boolean"},"bonusPercentage":{"type":"number"},"showAppName":{"type":"boolean"},"useCustomLogo":{"type":"boolean"},"customLogoUrl":{"type":"string","nullable":true},"defaultTheme":{"type":"string","enum":["dark","light"],"default":"dark"}},"required":["name","currencyName","currencyExchangeRate","bonusActive","bonusPercentage","showAppName","useCustomLogo","customLogoUrl","defaultTheme"]},"PublicPaginationDto":{"type":"object","properties":{"limit":{"type":"integer","format":"int32","minimum":1,"maximum":100},"offset":{"type":"integer","format":"int32","minimum":0,"maximum":1000},"returned":{"type":"integer","format":"int32","minimum":0,"maximum":100},"total":{"type":"integer","format":"int64","minimum":0},"hasMore":{"type":"boolean"},"nextOffset":{"type":"integer","format":"int32","minimum":0,"maximum":1000,"nullable":true},"truncated":{"type":"boolean","description":"True when exact total says rows remain but the offset ceiling or zero progress makes this envelope terminal."}},"required":["limit","offset","returned","total","hasMore","nextOffset","truncated"]},"PublicCatalogueResponseDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicCatalogueItemDto"}},"app":{"$ref":"#/components/schemas/PublicAppMetadataDto"},"pagination":{"$ref":"#/components/schemas/PublicPaginationDto"}},"required":["items","app","pagination"]},"PublicActivityDto":{"type":"object","properties":{"inProgress":{"type":"number"},"completed":{"type":"number"}},"required":["inProgress","completed"]},"PublicWindowStatsDto":{"type":"object","properties":{"rewards":{"type":"number"},"clicks":{"type":"number"},"completions":{"type":"number"},"surveysCompleted":{"type":"number"},"offersCompleted":{"type":"number"}},"required":["rewards","clicks","completions","surveysCompleted","offersCompleted"]},"PublicStreakDto":{"type":"object","properties":{"currentDays":{"type":"number"},"completedToday":{"type":"boolean"}},"required":["currentDays","completedToday"]},"PublicStreakRewardDto":{"type":"object","properties":{"percentage":{"type":"number"},"days":{"type":"number"}},"required":["percentage","days"]},"PublicStatsResponseDto":{"type":"object","properties":{"today":{"$ref":"#/components/schemas/PublicWindowStatsDto"},"last30Days":{"$ref":"#/components/schemas/PublicWindowStatsDto"},"streak":{"$ref":"#/components/schemas/PublicStreakDto"},"windowDays":{"type":"number"},"currencyName":{"type":"string"},"streakReward":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/PublicStreakRewardDto"}]}},"required":["today","last30Days","streak","windowDays","currencyName","streakReward"]},"PublicStartOfferDto":{"type":"object","properties":{"appToken":{"type":"string","description":"Public application token. This is the app apiKey, never its database id.","example":"public-app-token"},"userId":{"type":"string","description":"Stable pseudonymous publisher user id. Do not send personal data.","example":"user-42","maxLength":255},"secureHash":{"type":"string","description":"Lowercase HMAC-SHA256 identity signature, required for SIGNED apps.","pattern":"^[0-9a-f]{64}$"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},"device":{"type":"string","enum":["android","ios","web"],"example":"web"}},"required":["appToken","userId"]},"PublicStartResponseDto":{"type":"object","properties":{"redirectUrl":{"type":"string","format":"uri","description":"Validated provider destination."},"clickId":{"type":"string","format":"uuid"}},"required":["redirectUrl","clickId"]},"MobileErrorDto":{"type":"object","properties":{"statusCode":{"type":"number"},"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"object"},"retryAfterSeconds":{"type":"integer","minimum":1,"description":"Whole seconds before retrying a throttled request. Present only on HTTP 429."}},"required":["statusCode","error","code","message"]},"MobileSessionMintDto":{"type":"object","properties":{"appToken":{"type":"string","description":"Public application token. Never an internal App id."},"userId":{"type":"string","description":"Exact stable pseudonymous publisher user id.","maxLength":255}},"required":["appToken","userId"]},"MobileSessionResponseDto":{"type":"object","properties":{"accessToken":{"type":"string","description":"Opaque bearer value. Kept in memory by native clients."},"expiresAt":{"type":"string","format":"date-time"}},"required":["accessToken","expiresAt"]},"MobileStartOfferDto":{"type":"object","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code.","example":"US"},"device":{"type":"string","enum":["android","ios","web"],"example":"web"}}}}}}