# FullDatos API v2 - Complete Reference > B2B eSIM marketplace API for provisioning mobile data connectivity worldwide. > Base URL: https://api.fulldatos.app > Version: 1.0.0 ## Authentication All endpoints require two headers: - x-api-key: Your organization API key (32 characters) - x-api-secret: Your organization API secret (64 characters) Request keys by emailing support@fulldatos.app ## Coverage 100+ countries worldwide. ## Endpoints ### Users GET /users Get all users Retrieves all users associated with your organization. Requires authentication. You can filter by a specific user using the reference_id query parameter. Returns a list of users with their details. GET /users/{user_id} Get user by ID Retrieves a user by their ID. Requires authentication. Returns the user details including their esims and orders. PUT /users/{user_id} Update a user's ID Updates an existing user's reference ID. Requires authentication. Only users within your organization can be updated. Current user ID is used to update the user to give it a new user ID DELETE /users/{user_id} Delete a user Permanently deletes a user from your organization using their user_id. Requires authentication. This action cannot be undone. All associated data will be removed from the system. ### Orders POST /orders Create a new order Creates a new order for eSIM provisioning. Requires authentication. Specify the user, bundle offer, and order details. The system will process the order, provision the eSIM from the provider, and return the order details including the eSIM information (ICCID, activation codes, etc.). GET /orders Get all orders Retrieves all orders for your organization. Requires authentication. You can filter orders by user using the query parameter. Returns a list of orders with their status, eSIM details, bundle information, and transaction history. GET /orders/{order_id} Get order by ID Retrieves an order by its order_id from your organization. Requires authentication. Returns the order details including status, eSIM information, bundle details, and transaction history. ### eSIMs GET /esims Get all eSIMs Retrieves all eSIMs associated with your organization. Requires authentication. Returns a list of all eSIMs with their details including eSIM ID, activation status, and associated user information. GET /esims/{esim_id} Get eSIM status Retrieves the current status and details of an eSIM directly from the provider. Requires authentication. Provide the eSIM ID to get real-time information including activation status, data usage, remaining balance, and network connectivity. This endpoint queries the provider API for the most up-to-date information. ### Bundles GET /bundles Get all bundles Retrieves all purchased bundles associated with your organization. Requires authentication. Returns a list of all bundles with their details including data usage, validity, status, and associated eSIM information. GET /bundles/{bundle_id} Get bundle by ID Retrieves the current status and details of a specific bundle directly from the provider. Requires authentication. Provide the bundle identifier to get real-time information including data usage, remaining balance, validity period, and activation status. This endpoint queries the provider API for the most up-to-date information. ### Refunds POST /refund Refund bundles, eSIMs, or orders Unified refund endpoint. Supports 4 modes: 1. **Single eSIM (all bundles):** `{ "esim_id": "..." }` 2. **Specific bundles:** `{ "esim_id": "...", "bundle_ids": ["..."] }` 3. **Entire order:** `{ "order_id": "..." }` 4. **Specific eSIMs of an order:** `{ "order_id": "...", "esim_ids": ["..."] }` Provide either `esim_id` OR `order_id`, not both. Credits are returned to the organization balance automatically. ### Credits GET /credits/balance Get organization credit balance Retrieves the current credit balance (USD and MXN) for the authenticated organization. GET /credits/transactions Get credit transaction history Retrieves the credit transaction history for the authenticated organization. Supports filtering by currency and pagination. ### Status GET /status Get network statuses from last 31 days Returns all network status entries created or updated in the last 31 days. Does not run health checks. Requires organization authentication. POST /status/check Run all health checks Runs health checks for API, database, and all providers. Creates new network status entries for each check. Requires organization authentication. ### Tickets POST /tickets Submit a support ticket Submit a support ticket for the authenticated organization. The ticket will be routed to the appropriate internal team based on the category. Use GET /tickets/categories to see available categories. GET /tickets Get organization tickets Retrieves all tickets submitted by the authenticated organization, sorted by newest first. GET /tickets/{ticket_id} Get ticket by ID Retrieves a specific ticket by its ticket_id. Only returns tickets belonging to the authenticated organization. GET /tickets/categories Get available ticket categories Retrieves all active ticket categories. Use the category_key when submitting a ticket via POST /tickets. ### Catalog GET /catalog/destinations Get all available destinations Returns a list of all countries covered by the offered eSIM bundles. Aggregates data from all bundle offers to display unique destinations with bundle counts, SKUs, and minimum pricing. GET /catalog/bundle-offers Get all bundle offers Retrieves a list of all bundle offers available in the system. Supports filtering by country, data capacity (min/max GB), validity duration (min/max days), SKU, profile, and status. Returns bundle details including pricing, data allowance, validity, and provider information. GET /catalog/bundle-offers/{sku} Get bundle offer by SKU Retrieves detailed information about a specific bundle offer using its SKU. Returns complete bundle offer details, including pricing, data allowance, validity, and network information. ### Device Compatibility GET /catalog/compatibility Get eSIM-compatible devices Returns a list of eSIM-compatible devices grouped by brand, with bilingual phone listings (Spanish and English). ### Analytics GET /analytics/sales Get sales analytics Returns sales analytics including costs, orders, eSIMs, and bundles broken down by granularity (day/week/month). GET /analytics/top-sales Get top sales analytics Returns top performing SKUs, destinations, and package variants by volume and revenue. GET /analytics/usage Get usage analytics Returns consumption data by day and country, including total consumption, GB vs unlimited breakdown, and user counts. GET /analytics/channels Get channel and process performance analytics Returns order count, revenue, and average order value by sales channel and process. GET /analytics/export Export analytics report Downloads analytics data as CSV or JSON. Specify the report type and format. ## Response format All responses follow: { success: boolean, message?: string, data?: any } ## Error format All errors return: { success: false, message: "Error description" } ## Rate limits 100 requests per minute per API key (falls back to IP-based limiting). Retry-After header included in 429 responses. ## Support - Email: support@fulldatos.app - Platform: https://platform.fulldatos.app - Parent company: Datos de Viaje (https://datosdeviaje.com) ## Machine-readable spec - OpenAPI 3.x JSON: https://api.fulldatos.app/swagger/json - OpenAPI 3.x JSON (Spanish): https://api.fulldatos.app/es/json