Skip to main content
Glama

Bitrefill Search and Shop

Official
by bitrefill
detail.ts4.11 kB
/** * Type definitions for Bitrefill MCP server */ import { z } from "zod"; /** * Product Detail Response schema for the complete product details from API */ export const ProductDetailResponseSchema = z.object({ _id: z.string(), slug: z.string(), name: z.string(), baseName: z.string(), noIndex: z.boolean().optional(), logoBackground: z.string().optional(), logoForeground: z.string().optional(), isLogoSvgPreferred: z.boolean().optional(), logoVersion: z.number().optional(), logoImage: z.string(), logoPreview: z.string(), iconPreview: z.string(), iconVersion: z.number().optional(), iconImage: z.string().optional(), iconBackground: z.string().optional(), iconForeground: z.string().optional(), iconNoMargin: z.boolean().optional(), type: z.string(), categories: z.array(z.string()), stats: z.object({ popularity: z.number().optional(), packageSize: z.number().optional(), }).optional(), countryStat: z.record(z.number()).optional(), countryCode: z.string(), countries: z.array(z.string()), recipientType: z.string().optional(), isPinBased: z.boolean().optional(), outOfStock: z.boolean().optional(), ratings: z.object({ reviewCount: z.number(), ratingValue: z.number(), ratingCount: z.number().optional(), scoreDistribution: z.array(z.number()).optional(), reviews: z.array(z.object({ id: z.string(), content: z.string(), score: z.number(), scoreMax: z.number(), authorName: z.string(), createdTime: z.string(), source: z.string(), author: z.string(), extract: z.string().optional(), score_max: z.number().optional(), date: z.string().optional(), feedback_url: z.string().optional(), })).optional(), }).optional(), packages: z.array(z.object({ display: z.string().nullable().optional(), value: z.string(), eurValue: z.number(), amount: z.number(), eurPrice: z.number(), usdPrice: z.number(), prices: z.record(z.number()), })), currency: z.string(), terms: z.string().optional(), termsLink: z.string().optional(), languages: z.record(z.boolean()).optional(), descriptions: z.record(z.string()).optional(), subtitles: z.record(z.string()).optional(), instructions: z.record(z.string()).optional(), redemptionMethods: z.array(z.string()).optional(), relatedX: z.array(z.object({ _id: z.string(), name: z.string(), slug: z.string(), logoImage: z.string().optional(), logoPreview: z.string().optional(), iconPreview: z.string().optional(), cashbackDisabled: z.boolean().optional(), logoVersion: z.number().optional(), countries: z.array(z.string()).optional(), type: z.string().optional(), countryCode: z.string().optional(), categories: z.array(z.string()).optional(), range: z.object({ min: z.number(), max: z.number(), step: z.number(), customerEurPriceRate: z.number().optional(), customerUsdPriceRate: z.number().optional(), eurValueRate: z.number().optional(), purchaseFeeEur: z.number().nullable().optional(), purchaseFeeUsd: z.number().nullable().optional(), }).optional(), currency: z.string().optional(), _ratingValue: z.number().optional(), _reviewCount: z.number().optional(), _priceRange: z.string().optional(), _expandedCC: z.record(z.number()).optional(), _sortOrderCC: z.record(z.number()).optional(), logoBackground: z.string().optional(), logoNoMargin: z.boolean().optional(), label: z.string().optional(), cashbackPercentageFinal: z.number().optional(), isRanged: z.boolean().optional(), _noIos: z.boolean().optional(), })).optional(), cashbackDisabled: z.boolean().optional(), _ratingValue: z.number().optional(), _reviewCount: z.number().optional(), _priceRange: z.string().optional(), _expandedCC: z.record(z.number()).optional(), }); /** * Product Detail Response interface for the complete product details from API */ export type ProductDetailResponse = z.infer<typeof ProductDetailResponseSchema>;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bitrefill/bitrefill-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server