UNPKG

lootably-offers-api-types

Version:

TypeScript type definitions for Lootably's Offers API

97 lines (71 loc) 2.9 kB
# Lootably Offers API Types TypeScript type definitions for Lootably's Offers API. ## API Documentation For detailed information about the Lootably Offers API, including request parameters and response structures, please refer to the [Lootably API Guide](https://documentation.lootably.com/docs/offers-api-guide). ## Description This package provides TypeScript types for Lootably's Offers API, allowing you to easily type our API's responses to ensure type safety in your application. ## Installation ```bash npm install lootably-offers-api-types ``` ## Usage For a complete list of available types, please refer to the [index.ts file](https://github.com/lootably/lootably-offers-api-types/blob/master/src/index.ts). You can import these types as needed in your TypeScript project. For example: ```typescript import type { APIResponse, Device, Category, } from 'lootably-offers-api-types'; ``` ### Example: Fetching Offers from the Lootably Offers API Here's how you can use the provided types to ensure type safety when working with responses from the Lootably Offers API: ```typescript // Types import type { SuccessfulAPIResponse, FailedAPIResponse } from 'lootably-offers-api-types'; const API_URL = 'https://api.lootably.com/api/v2/offers/get'; async function fetchOffers(): Promise<void> { const requestBody = { placementID: process.env.PLACEMENT_ID, apiKey: process.env.API_KEY, userData: { userID: 'exampleUserID', userAgentHeader: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', ipAddress: '192.0.2.1', }, categories: ['app', 'game'], devices: ['windows', 'android'], countries: ['US', 'CA'], }; const response = await fetch(API_URL, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(requestBody), }); const data: SuccessfulAPIResponse | FailedAPIResponse = await response.json(); if (data.success) { console.log('Request ID:', data.data.requestID); console.log('Offers:', data.data.offers); data.data.offers.forEach((offer) => { if (offer.type === 'singlestep') { // Handle single-tep offer console.log('Singlestep Offer:', offer.name); } else if (offer.type === 'multistep') { // Handle multistep offer console.log('Multistep Offer:', offer.name); } }); } else { console.error(`Error: ${data.message}`); console.error('Request ID:', data.data.requestID); } } fetchOffers().catch((error) => { console.error('An error occurred while fetching offers:', error); }); ``` **Note:** Ensure that the environment variables `PLACEMENT_ID` and `API_KEY` are properly set before running the script. ## Contact If you have any questions or need assistance, please email us at [business@lootably.com](mailto:business@lootably.com) or reach out to your Lootably contact.