# Smile.io Developer Documentation > Documentation and guides for using Smile's full-stack developer tooling, including the REST API and JavaScript SDK. ## Docs - [Authentication](https://dev.smile.io/api/authentication.md) - [Errors](https://dev.smile.io/api/errors.md) - [Introduction](https://dev.smile.io/api/introduction.md) - [Classic pagination](https://dev.smile.io/api/pagination/classic-pagination.md) - [Cursor pagination](https://dev.smile.io/api/pagination/cursor-pagination.md) - [Rate limits](https://dev.smile.io/api/rate-limits.md) - [Activity object](https://dev.smile.io/api/resources/activities/activity-object.md) - [Create an activity](https://dev.smile.io/api/resources/activities/create-activity.md): Creates a record of a customer having performed a given action. - [Create or update a customer identity](https://dev.smile.io/api/resources/customer-identities/create-or-update-identity.md): Creates a new customer identity or updates an existing one. - [Customer Identity object](https://dev.smile.io/api/resources/customer-identities/customer-identity-object.md) - [Customer object](https://dev.smile.io/api/resources/customers/customer-object.md) - [List customers](https://dev.smile.io/api/resources/customers/list-customers.md): Retrieves a list of customers based on a set of provided filters. - [Retrieve a customer](https://dev.smile.io/api/resources/customers/retrieve-a-customer.md): Retrieves a single customer by ID. - [Earning Rule object](https://dev.smile.io/api/resources/earning-rules/earning-rule-object.md) - [List earning rules](https://dev.smile.io/api/resources/earning-rules/list-earning-rules.md): Retrieves a list of enabled earning rules. - [List points products](https://dev.smile.io/api/resources/points-products/list-points-products.md): Retrieves a list of points products based on the specified filters. - [Points Product object](https://dev.smile.io/api/resources/points-products/points-product-object.md) - [Purchase a points product](https://dev.smile.io/api/resources/points-products/purchase-points-product.md): Exchanges a customer's points for a reward by purchasing a points product. - [Retrieve a points product](https://dev.smile.io/api/resources/points-products/retrieve-points-product.md): Retrieves a single points product by ID. - [Points Purchase object](https://dev.smile.io/api/resources/points-purchases/points-purchase-object.md) - [Get points settings](https://dev.smile.io/api/resources/points-settings/get-points-settings.md): Retrieves the configuration for the account's points program. - [Points Settings object](https://dev.smile.io/api/resources/points-settings/points-settings-object.md) - [Create a points transaction](https://dev.smile.io/api/resources/points-transactions/create-points-transaction.md): Add or remove points from a customer's points balance by creating a points transaction. - [List points transactions](https://dev.smile.io/api/resources/points-transactions/list-points-transactions.md): Retrieves a list of points transactions. - [Points Transaction object](https://dev.smile.io/api/resources/points-transactions/points-transaction-object.md) - [Retrieve a points transaction](https://dev.smile.io/api/resources/points-transactions/retrieve-points-transaction.md): Retrieves a single points transaction by ID. - [Referral object](https://dev.smile.io/api/resources/referrals/referral-object.md) - [List reward fulfillments](https://dev.smile.io/api/resources/reward-fulfillments/list-reward-fulfillments.md): Retrieves a list of reward fulfillments. - [Reward Fulfillment object](https://dev.smile.io/api/resources/reward-fulfillments/reward-fulfillment-object.md) - [Reward object](https://dev.smile.io/api/resources/rewards/reward-object.md) - [VIP Tier Change object](https://dev.smile.io/api/resources/vip-tier-changes/vip-tier-change-object.md) - [List VIP tiers](https://dev.smile.io/api/resources/vip-tiers/list-vip-tiers.md): Retrieves a list of VIP tiers. - [VIP Tier object](https://dev.smile.io/api/resources/vip-tiers/vip-tier-object.md) - [Activities](https://dev.smile.io/guides/apps/activities.md) - [Access scopes](https://dev.smile.io/guides/apps/auth/access-scopes.md) - [OAuth errors](https://dev.smile.io/guides/apps/auth/oauth-errors.md) - [OAuth flow](https://dev.smile.io/guides/apps/auth/oauth-flow.md) - [Client secret rotation](https://dev.smile.io/guides/apps/auth/oauth-rotation.md) - [App authorization](https://dev.smile.io/guides/apps/auth/overview.md) - [Build an app](https://dev.smile.io/guides/apps/build.md): Learn how to build an app and get it launched. - [Integration methods](https://dev.smile.io/guides/apps/integrate.md): Learn about the different ways to integrate with Smile. - [Use merchant credentials](https://dev.smile.io/guides/apps/merchant-credentials.md): Learn how to use merchant credentials to integrate with Smile. - [App submission process](https://dev.smile.io/guides/apps/submission/process.md) - [App requirements](https://dev.smile.io/guides/apps/submission/requirements.md) - [Webhooks](https://dev.smile.io/guides/apps/webhooks.md): Apps can subscribe to webhook topics to receive notifications when events occur within Smile. - [Example usage](https://dev.smile.io/guides/deprecated/custom-html-emails/custom-email-examples.md) - [Object reference](https://dev.smile.io/guides/deprecated/custom-html-emails/custom-email-objects.md) - [Handlebar variables](https://dev.smile.io/guides/deprecated/custom-html-emails/custom-email-variables.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-html-emails/overview.md) - [Customer deleted](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-customer-events/custom-customer-deleted.md) - [Customer object](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-customer-events/custom-customer-object.md) - [Customer updated](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-customer-events/custom-customer-updated.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-customer-events/overview.md) - [Order deleted](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-order-events/custom-order-deleted.md) - [Order object](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-order-events/custom-order-object.md) - [Order updated](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-order-events/custom-order-updated.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/custom-order-events/overview.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-platform/custom-backend-int/overview.md) - [FAQ](https://dev.smile.io/guides/deprecated/custom-platform/custom-faq.md) - [Points at checkout](https://dev.smile.io/guides/deprecated/custom-platform/custom-frontend-int/custom-points-at-checkout.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-platform/custom-frontend-int/overview.md) - [Overview](https://dev.smile.io/guides/deprecated/custom-platform/overview.md) - [Concepts & fundamentals](https://dev.smile.io/guides/fundamentals.md): Learn the core concepts and building blocks of Smile's system. - [Introduction](https://dev.smile.io/guides/introduction.md): Smile's developer platform enables you to create custom loyalty solutions that meet the needs of merchants, regardless of industry or specialization. - [Common use cases](https://dev.smile.io/guides/use-cases/common.md): Explore common implementation patterns and real-world examples to jump-start development. - [Add Smile to your frontend](https://dev.smile.io/guides/use-cases/custom-frontend.md): Embed loyalty functionality into any website or custom storefront using Smile's JavaScript SDK, Smile UI, or both. - [Headless / Single Page Applications](https://dev.smile.io/guides/use-cases/custom-frontend/headless.md): Add Smile to any headless or SPA frontend using the JavaScript SDK or Smile UI. - [Migrate to the JavaScript SDK](https://dev.smile.io/guides/use-cases/custom-frontend/js-sdk-migration.md): Migrate to using the new JavaScript SDK instead of the old `Smile.*` methods bundled with Smile UI. - [BigCommerce Stencil](https://dev.smile.io/guides/use-cases/landing-page/bigcommerce-stencil.md) - [Overview](https://dev.smile.io/guides/use-cases/landing-page/overview.md) - [BigCommerce dropdown](https://dev.smile.io/guides/use-cases/points-at-checkout/bigc-points-dropdown.md) - [BigCommerce slider](https://dev.smile.io/guides/use-cases/points-at-checkout/bigc-points-slider.md) - [Overview](https://dev.smile.io/guides/use-cases/points-at-checkout/overview.md) - [Reward for any action](https://dev.smile.io/guides/use-cases/rewarding-for-any-action.md) - [Home](https://dev.smile.io/index.md) - [Customer tokens](https://dev.smile.io/js/concepts/customer-tokens.md) - [Error handling](https://dev.smile.io/js/concepts/error-handling.md) - [ApiError object](https://dev.smile.io/js/concepts/error-object.md) - [Initialized event](https://dev.smile.io/js/concepts/initialized-event.md): `smile-js-initialized` - [Lifecycle events](https://dev.smile.io/js/concepts/lifecycle-events.md) - [Loaded event](https://dev.smile.io/js/concepts/loaded-event.md): `smile-js-loaded` - [Preloading resources](https://dev.smile.io/js/concepts/preloading.md) - [Versioning](https://dev.smile.io/js/concepts/versioning.md) - [Including Smile.js](https://dev.smile.io/js/including.md) - [Introduction](https://dev.smile.io/js/introduction.md) - [Create an activity](https://dev.smile.io/js/resources/activities/create.md): `Smile.activities.create(activityAttributes)` - [Activity object](https://dev.smile.io/js/resources/activities/object.md) - [Get customer points products](https://dev.smile.io/js/resources/customer-points-products/get.md): `Smile.customerPointsProducts.get()` - [Customer Points Product object](https://dev.smile.io/js/resources/customer-points-products/object.md) - [Preloaded customer points products](https://dev.smile.io/js/resources/customer-points-products/preloaded.md): `Smile.customerPointsProducts.preloaded()` - [Get customer points wallet](https://dev.smile.io/js/resources/customer-points-wallet/get.md): `Smile.customerPointsWallet.get()` - [Customer Points Wallet object](https://dev.smile.io/js/resources/customer-points-wallet/object.md) - [Preloaded customer points wallet](https://dev.smile.io/js/resources/customer-points-wallet/preloaded.md): `Smile.customerPointsWallet.preloaded()` - [Get customer VIP status](https://dev.smile.io/js/resources/customer-vip-status/get.md): `Smile.customerVipStatus.get()` - [Customer VIP Status object](https://dev.smile.io/js/resources/customer-vip-status/object.md) - [Preloaded customer VIP status](https://dev.smile.io/js/resources/customer-vip-status/preloaded.md): `Smile.customerVipStatus.preloaded()` - [Get current customer](https://dev.smile.io/js/resources/customer/current.md): `Smile.customer.current()` - [Login the customer](https://dev.smile.io/js/resources/customer/login.md): `Smile.customer.login(customerToken, options?)` - [Logout the customer](https://dev.smile.io/js/resources/customer/logout.md): `Smile.customer.logout()` - [Customer object](https://dev.smile.io/js/resources/customer/object.md) - [Get earning rules](https://dev.smile.io/js/resources/earning-rules/get.md): `Smile.earningRules.get()` - [Earning Rule object](https://dev.smile.io/js/resources/earning-rules/object.md) - [Preloaded earning rules](https://dev.smile.io/js/resources/earning-rules/preloaded.md): `Smile.earningRules.preloaded()` - [Get points products](https://dev.smile.io/js/resources/points-products/get.md): `Smile.pointsProducts.get()` - [Get a points product](https://dev.smile.io/js/resources/points-products/get-by-id.md): `Smile.pointsProducts.getById(id)` - [Points Product object](https://dev.smile.io/js/resources/points-products/object.md) - [Preloaded points products](https://dev.smile.io/js/resources/points-products/preloaded.md): `Smile.pointsProducts.preloaded()` - [Purchase a points product](https://dev.smile.io/js/resources/points-products/purchase.md): `Smile.pointsProducts.purchase(id, options?)` - [Points Purchase object](https://dev.smile.io/js/resources/points-purchases/object.md) - [Get points settings](https://dev.smile.io/js/resources/points-settings/get.md): `Smile.pointsSettings.get()` - [Points Settings object](https://dev.smile.io/js/resources/points-settings/object.md) - [Preloaded points settings](https://dev.smile.io/js/resources/points-settings/preloaded.md): `Smile.pointsSettings.preloaded()` - [Get reward fulfillments](https://dev.smile.io/js/resources/reward-fulfillments/get.md): `Smile.rewardFulfillments.get()` - [Reward Fulfillment object](https://dev.smile.io/js/resources/reward-fulfillments/object.md) - [Preloaded reward fulfillments](https://dev.smile.io/js/resources/reward-fulfillments/preloaded.md): `Smile.rewardFulfillments.preloaded()` - [Reward object](https://dev.smile.io/js/resources/rewards/object.md) - [Get VIP tiers](https://dev.smile.io/js/resources/vip-tiers/get.md): `Smile.vipTiers.get()` - [Get a VIP tier](https://dev.smile.io/js/resources/vip-tiers/get-by-id.md): `Smile.vipTiers.getById(id)` - [VIP Tier object](https://dev.smile.io/js/resources/vip-tiers/object.md) - [Preloaded VIP tiers](https://dev.smile.io/js/resources/vip-tiers/preloaded.md): `Smile.vipTiers.preloaded()` - [Format points](https://dev.smile.io/js/smile/format-points.md): `Smile.formatPoints(pointsAmount, options?)` - [Initialize the SDK](https://dev.smile.io/js/smile/initialize.md): `Smile.initialize(options)` - [Preload resources](https://dev.smile.io/js/smile/preload.md): `Smile.preload(resources)` - [Reset the SDK](https://dev.smile.io/js/smile/reset.md): `Smile.reset()` - [Customer tokens](https://dev.smile.io/ui/customer-tokens.md) - [Customer ready method](https://dev.smile.io/ui/events/customer-ready.md): `SmileUI.customerReady()` - [Loaded event](https://dev.smile.io/ui/events/ui-loaded.md): `window.SmileUI` - [Ready method](https://dev.smile.io/ui/events/ui-ready.md): `SmileUI.ready()` - [Including Smile UI](https://dev.smile.io/ui/including.md) - [Initializing Smile UI](https://dev.smile.io/ui/initializing.md): `SmileUI.initialize(options)` - [Introduction](https://dev.smile.io/ui/introduction.md) - [Activity object](https://dev.smile.io/ui/objects/activity.md) - [Customer object](https://dev.smile.io/ui/objects/customer.md) - [Customer points product object](https://dev.smile.io/ui/objects/customer-points-product.md) - [Points product object](https://dev.smile.io/ui/objects/points-product.md) - [Points purchase object](https://dev.smile.io/ui/objects/points-purchase.md) - [Reward object](https://dev.smile.io/ui/objects/reward.md) - [Reward fulfillment object](https://dev.smile.io/ui/objects/reward-fulfillment.md) - [VIP Tier object](https://dev.smile.io/ui/objects/vip-tier.md) - [Close panel](https://dev.smile.io/ui/panel/close.md): `SmileUI.closePanel()` - [Deep links](https://dev.smile.io/ui/panel/deep-links.md) - [Open panel](https://dev.smile.io/ui/panel/open.md): `SmileUI.openPanel(options?)` - [Create an activity](https://dev.smile.io/ui/smile/create-activity.md): `Smile.createActivity(activityAttributes)` - [Customer ready](https://dev.smile.io/ui/smile/customer-ready.md): `Smile.customerReady()` - [Load all customer points products](https://dev.smile.io/ui/smile/fetch-all-customer-points-products.md): `Smile.fetchAllCustomerPointsProducts()` - [Load all points products](https://dev.smile.io/ui/smile/fetch-all-points-products.md): `Smile.fetchAllPointsProducts()` - [Load all reward fulfillments](https://dev.smile.io/ui/smile/fetch-all-reward-fulfillments.md): `Smile.fetchAllRewardFulfillments()` - [Reload the customer](https://dev.smile.io/ui/smile/fetch-customer.md): `Smile.fetchCustomer(options?)` - [Load a points product](https://dev.smile.io/ui/smile/fetch-points-product.md): `Smile.fetchPointsProduct(id)` - [Format points](https://dev.smile.io/ui/smile/format-points.md): `Smile.formatPoints(pointsAmount, options?)` - [Purchase a points product](https://dev.smile.io/ui/smile/purchase-points-product.md): `Smile.purchasePointsProduct(id, options?)` - [Ready method](https://dev.smile.io/ui/smile/ready.md): `Smile.ready()` ## OpenAPI Specs - [rest-api](https://dev.smile.io/schemas/rest-api.json) - [js-sdk](https://dev.smile.io/schemas/js-sdk.json) - [smile-ui](https://dev.smile.io/schemas/smile-ui.json) - [openapi](https://dev.smile.io/api-reference/openapi.json)