Soy Rappi courier data API
Soy Rappi (Sé un repartidor) is the courier app from Rappi, Inc, the Bogotá-founded Latin American delivery super-app, and it is where the riders Rappi calls Rappitenderos work its orders in Brazil. Couriers sign in with a one-time code sent by email, SMS or WhatsApp, go online from a home map that shades high-demand zones, and take bundled restaurant and store orders through the pickup, in-store and delivery steps. The drop-off screen guides the hand-over with the delivery address and map pin, the recipient, the type of place, a cash-collection prompt, a bill photo and photo proof of delivery, and also handles orders that have to be returned. A daily goal card on the home screen tracks the day's earnings against a target the rider picks within an allowed range, and the My Profile screen shows the courier's acceptance rate, rating, vehicle and bank-account and card setup. In Brazil it serves mainly motorcycle couriers delivering food and groceries for Rappi, competing for riders with iFood's courier app in the country's on-demand delivery market.
Order bundles anchor the courier record: the active-orders feed groups a rider's in-flight work into orderBundles, activeBundles and laggingOrders, and each order inside carries orderId, storeName, orderDate, orderType (restaurant or store), a workflow status such as IN_STORE, the basket total and the rider's earnings for that trip. Opening an order adds its drop-off envelope: address, location coordinates, recipientName, placeType, additionalInfo, the cashCollected flag, billImage, evidenceType and an isReturn marker.
Around those orders sit three more records. The courier profile holds identification, city, transportationMethod, acceptanceRate, the average rating, trusted and isActive status, storekeeperDebt, hasBankAccount and cardActive. The daily earnings goal sets goalValue against totalEarned, with the allowed goalRange and a completion percentage. The demand-heatmap configuration carries the overlay radius, its refresh interval every, a treatment flag and the citiesIdsToApply where the layer is switched on.
Fleet-ops teams reconcile each rider's totalEarned and goalValue with weekly payouts and flag couriers whose percentage stalls below the configured range; dispatch dashboards follow every orderId to its drop-off detail and alert when an IN_STORE order runs past its ETA; routing tools combine the heatmap's radius and enabled cities with a courier's city and transportationMethod to suggest where motorcycle riders should wait at peak hours; and onboarding checks screen identification, storekeeperDebt and bank/card setup before a courier is allowed to stay online. openData Studio turns this Brazilian courier data into callable open data for those integrations.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Courier email OTP token grant
POST
/v1/auth/courier/email/verifyopendataExchanges an email one-time code for the courier Bearer accessToken, refreshToken and nested profile used by every other Soy Rappi call.
Auth: None (issues tokens). Body carries the one-time code plus the authorization handle returned by the send-code step; every subsequent call uses Bearer accessToken.
- auth
- code
- deviceInformation
- accessToken
- refreshToken
- profile
POST /v1/auth/courier/email/verify HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "auth": "eyJhbGciOi...", "code": "482193", "deviceInformation": {"deviceId": "3f2b8c1d-9a1e-4c2b", "os": "android"} }{ "accessToken": "eyJhbGciOi...", "refreshToken": "d8f1c2...", "profile": { "id": 1843921, "firstName": "Camila", "lastName": "Souza", "email": "[email protected]", "phone": "11987654321" } }Courier profile
GET
/v1/couriers/me/profileosintReads the signed-in courier's identity, city, vehicle, acceptance rate, debt and bank/card flags that drive the My Profile and home screens.
Auth: Bearer accessToken from /v1/auth/courier/email/verify
- id
- identification
- firstName
- lastName
- phone
- country
- city
- isActive
- trusted
- transportationMethod
- acceptanceRate
- average
- storekeeperDebt
- hasBankAccount
- cardActive
GET /v1/couriers/me/profile HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "id": 1843921, "identification": "12345678900", "firstName": "Camila", "lastName": "Souza", "phone": "11987654321", "email": "[email protected]", "country": "BR", "city": "Sao Paulo", "isActive": true, "trusted": true, "transportationMethod": "motorcycle", "acceptanceRate": 92, "average": "4.8", "storekeeperDebt": 0, "hasBankAccount": true, "cardActive": true }Daily earnings goal
GET
/v1/couriers/{courier_id}/daily-goalopenfinanceReturns the courier's configured daily earnings target versus totalEarned so far, including the allowed goalRange and completion percentage.
Auth: Bearer accessToken from /v1/auth/courier/email/verify
- dailyGoal
- goalRange
- goalValue
- totalEarned
- percentage
GET /v1/couriers/1843921/daily-goal HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "dailyGoal": { "goalRange": {"min": 50, "max": 400}, "goalValue": 180, "totalEarned": 126, "percentage": 70 } }Order delivery detail
GET
/v1/orders/{orderId}/dropoff-detailopendataReturns the drop-off envelope for an in-progress order: address, coordinates, recipient, cash-collected flag and evidence type used by the delivery-step screen.
Auth: Bearer accessToken from /v1/auth/courier/email/verify
- address
- location
- flow
- additionalInfo
- billImage
- isReturn
- recipientName
- placeType
- storekeeperId
- cashCollected
- evidenceType
GET /v1/orders/99887766/dropoff-detail HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "address": "Rua Augusta 1500, Apto 42", "location": {"lat": -23.5614, "lng": -46.6558}, "flow": "STANDARD", "additionalInfo": "Leave at reception", "billImage": "https://cdn.example/bills/99887766.jpg", "isReturn": false, "recipientName": "Joao Lima", "placeType": "apartment", "storekeeperId": 1843921, "cashCollected": false, "evidenceType": "PHOTO" }Demand heatmap distribution
GET
/v1/demand/heatmap/configopendataFeeds the home-map demand overlay: heatmap radius, refresh interval, experiment treatment flag and the city ids where the layer is enabled.
Auth: Bearer accessToken from /v1/auth/courier/email/verify
- treatment
- radius
- every
- version
- citiesIdsToApply
GET /v1/demand/heatmap/config?lat=-23.5614&lng=-46.6558&radius=1500 HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "treatment": true, "radius": 1500, "every": 60, "version": "v1", "citiesIdsToApply": [1, 4, 9] }Active orders by state
GET
/v1/orders/activeopendataLists the courier's in-flight order bundles and lagging orders by workflow state so the home screen can resume pickup, in-store and delivery steps.
Auth: Bearer accessToken from /v1/auth/courier/email/verify
- laggingOrders
- orderBundles
- activeBundles
- id
- orderId
- storeName
- orderDate
- total
- orderType
- status
- earnings
- userId
GET /v1/orders/active HTTP/1.1 Authorization: Bearer eyJhbGciOi...{ "laggingOrders": [], "orderBundles": [{ "id": "bdl_01", "orders": [{ "id": "ord_99887766", "orderId": 99887766, "storeName": "Burger House Paulista", "orderDate": "2026-09-24T18:12:03Z", "total": 42.9, "orderType": "RESTAURANT", "status": "IN_STORE", "earnings": 8.5, "userId": 552109 }] }], "activeBundles": [], "isFirebaseActive": true }
Data categories
- auth tokens
- courier profile
- earnings goals
- delivery details
- demand heatmap
- active orders
Where teams use this data
Courier payroll reconciliation
A fleet-ops bot pulls the daily-goal totalEarned versus goalValue for each courier and matches it against weekly payouts, flagging riders whose percentage stalls below the configured goalRange.
Live delivery SLA monitor
A dispatch dashboard watches the active-orders feed and opens the drop-off detail for each orderId to read recipientName, location and cashCollected, then alerts when an IN_STORE order sits past its ETA.
Demand-aware rider positioning
A routing tool reads the heatmap distribution (radius, every, citiesIdsToApply) together with the courier profile's city and transportationMethod to suggest where motorcycle riders should wait during peak hours.
KYC and debt screening
An onboarding check uses the courier profile identification, hasBankAccount, cardActive and storekeeperDebt fields to decide whether a courier can stay online or must complete bank/card setup first.
Frequently asked questions
How does Soy Rappi authenticate a courier?
The courier requests an email (or SMS/WhatsApp) one-time code, then POSTs email, auth, code and deviceInformation to /v1/auth/courier/email/verify. The response carries accessToken, refreshToken and a nested profile; later calls send Authorization: Bearer accessToken.
Which fields describe a courier's daily earnings target?
GET /v1/couriers/{courier_id}/daily-goal returns dailyGoal with goalRange, goalValue, totalEarned and percentage — the same numbers shown on the in-app daily goal card.
Where does the drop-off address come from?
GET /v1/orders/{orderId}/dropoff-detail returns address, location, recipientName, placeType, cashCollected and evidenceType for the delivery-step screen.
How does the demand heatmap update?
GET /v1/demand/heatmap/config is called with the rider's lat/lng and radius. The payload carries treatment, radius, every (refresh seconds), version and citiesIdsToApply.
Apps similar to Soy Rappi - Sé un repartidor
- iFood para Entregadores — iFood's courier app is the leading alternative for delivery riders in Brazil, where partners go online, accept food orders and track their per-delivery earnings.
- PedidosYa Repartidor — PedidosYa's courier app serves delivery riders across 15 Latin American markets, carrying food, grocery and pharmacy orders.
- Loggi — Loggi is a Brazilian last-mile logistics app whose couriers deliver packages, documents and e-commerce orders rather than restaurant food.
- Lalamove — Lalamove is an on-demand delivery app operating in Brazilian cities since 2019 where drivers carry orders by motorcycle, car, van or truck.
- Uber Driver — Uber's driver app lets partners switch between ride-hailing trips and Uber Eats food deliveries within a single app.
- 99 Entregas — 99's delivery option, backed by DiDi and integrated with the 99 ride-hailing app, is another Brazilian platform couriers use for delivery work.
- DoorDash Dasher — DoorDash's Dasher app is a widely used courier app where drivers accept and deliver food orders and track their earnings, a close functional analog to Soy Rappi.
Topics
- soy rappi api
- rappi courier endpoints
- courier daily goal
- rappi delivery detail
- rappi heatmap api
- rappi active orders
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use