API contracts
Every API call, feature by feature: what today's app calls, and the App Service v2 operation that replaces it. Each call opens to its use case, request and response bodies, and errors.
Contract filessynthetic example data
- Today
- 112 live endpoints across 14 services, traced from the app’s code and DTOs
- App Service v2
- 39 operations, OpenAPI 2.0.0-draft: download app-service-v2.yaml
Onboarding & setup
Language selection
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
Login
| Today: call | Use |
|---|---|
PUT /ctld/api/device/deviceid/v1Bridge session API (ctld) | Register the phone with Bridge and get its device id before login. |
POST /ctld/api/session/v1Bridge session API (ctld) | Sign the user in and get a session token. |
GET /rtld/api/dataset/v1/execute?name=PlusOneTenantUserDataReporting datasets (rtld) | Load the signed-in user, tenant, roles and assigned work nodes; decides cadre vs Unit In-charge/FMT flow. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneUrviGeoDataForVOs/executecommons-report-service | Load the work-node (geography) hierarchy for the work-node picker. |
| App Service v2: operation | Use |
|---|---|
POST /auth/login | Log in with login, tenant and password |
POST /auth/refresh | Rotate the refresh token |
App startup and role detection
| Today: call | Use |
|---|---|
POST /ctld/api/session/v1Bridge session API (ctld) | Sign the user in and get a session token. |
GET /rtld/api/dataset/v1/execute?name=PlusOneTenantUserDataReporting datasets (rtld) | Load the signed-in user, tenant, roles and assigned work nodes; decides cadre vs Unit In-charge/FMT flow. |
SDK Firebase Remote ConfigFirebase | Read the show_force_sync flag (show_analytics_tab and current_season_value are fetched but unused). |
| App Service v2: operation | Use |
|---|---|
POST /auth/login | Log in with login, tenant and password |
POST /auth/refresh | Rotate the refresh token |
GET /session/bootstrap | Session bootstrap after login and on cold start |
GET /config | Typed config bundle (ETag) |
PUT /devices/{deviceId} | Register or update this device |
Village, Habitation and VO selection
| Today: call | Use |
|---|---|
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneUrviGeoDataForVOs/executecommons-report-service | Load the work-node (geography) hierarchy for the work-node picker. |
| App Service v2: operation | Use |
|---|---|
GET /session/bootstrap | Session bootstrap after login and on cold start |
GET /geo/children | Children of a geography node |
Device registration and remote actions
| Today: call | Use |
|---|---|
GET /gateway/urvi-app-service/api/v1/user-device-sessions/userurvi-app-service | Check whether this device is the one bound to the user. |
POST /gateway/urvi-app-service/api/v1/user-device-sessionurvi-app-service | Bind this device to the user. |
PATCH /gateway/urvi-app-service/api/v1/user-device-sessions/users/{userId}?remarks=urvi-app-service | Expire all device sessions of the user. |
GET /gateway/urvi-app-service/api/v1/remote-app-actions/actorurvi-app-service | Fetch pending remote commands (LOGOUT, CLEAR_APP_DATA) for this user. |
PATCH /gateway/urvi-app-service/api/v1/remote-app-actions/{id}/executionurvi-app-service | Report a remote command as done, optionally attaching a zip of the app databases. |
| App Service v2: operation | Use |
|---|---|
POST /auth/logout | Log out and revoke tokens |
GET /session/bootstrap | Session bootstrap after login and on cold start |
GET /config | Typed config bundle (ETag) |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
PUT /devices/{deviceId} | Register or update this device |
PUT /devices/{deviceId}/push-token | Store or rotate the FCM push token |
POST /devices/{deviceId}/binding/takeover | "Login here": move the binding to this device |
GET /devices/{deviceId}/actions | Pending remote actions for this device |
POST /devices/{deviceId}/actions/{actionId}/complete | Report a remote action as executed |
Data download (Cadre)
| App Service v2: operation | Use |
|---|---|
POST /auth/logout | Log out and revoke tokens |
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /assessments | Assessment definitions and past submissions |
Data download (Unit / FMT)
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /compact-blocks | Compact blocks for VOs |
Home & navigation
Home and bottom bar
| Today: call | Use |
|---|---|
GET /gateway/portfolio-service/api/v1/ref-data/class/CLASS.PORTFOLIO_APP_CONFIG?page&size=100&direction=ASCportfolio-service | Load app config: feature flags, current season, retry delay, pagination and chunk sizes. |
GET /rtld/api/dataset/v1/execute?name=AAP_REJECT_REASONReporting datasets (rtld) | Load the reasons a reviewer can pick when rejecting an annual action plan. |
GET /rtld/api/dataset/v1/execute?name=UrviYouTubeReporting datasets (rtld) | Load help video links. |
GET /ctld/api/product/v1 (generated ProductAPI.getProduct)Common TLD (ctld) | Load the tenant product (crop/input) master. |
GET /ie-registration/assets/json/inventory/crops-list.jsonPlatform static files | Load the static crop list. |
GET /gateway/portfolio-service/api/v1/practices/active?direction=ASC&page=1&size=100portfolio-service | Load the active farming practices master. |
GET S3 igx-static-data/asset/ref_data.jsonS3 static data | Load asset (land/cattle) reference data. |
GET S3 igx-static-data/asset/classification.jsonS3 static data | Load asset classification data. |
GET /gateway/urvi-app-service/api/v1/user-device-sessions/userurvi-app-service | Check whether this device is the one bound to the user. |
| App Service v2: operation | Use |
|---|---|
GET /session/bootstrap | Session bootstrap after login and on cold start |
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /endorsements | Endorsement statuses (VO, SHG, farmer) |
GET /notifications | MIS and system notifications since a time |
POST /telemetry | Screen events and sync-health counters (no PII) |
Side menu
| Today: call | Use |
|---|---|
PATCH /gateway/urvi-app-service/api/v1/user-device-sessions/users/{userId}?remarks=urvi-app-service | Expire all device sessions of the user. |
GET /gateway/asset-service/api/v1/assets/ownerEntities?ownerEntityIdList=&ownerEntityType=OWNER_ENTITY.IEasset-service | Download land and cattle assets for a chunk of farmers (or the cadre, with OWNER_ENTITY.BRIDGE_USER). |
| App Service v2: operation | Use |
|---|---|
POST /auth/logout | Log out and revoke tokens |
GET /session/bootstrap | Session bootstrap after login and on cold start |
Notifications
| Today: call | Use |
|---|---|
GET /gateway/asset-service/api/v1/endorsementComment/postedby?page&size&postedByasset-service | Poll for new comments to show as in-app notifications. |
SDK FCM topic subscribe: urvi_endorsement_status, urvi_endorsement_comment, NOTIFICATIONFirebase | Receive endorsement and broadcast push messages. |
| App Service v2: operation | Use |
|---|---|
GET /farmers/{farmerId} | One hydrated farmer (get-or-create) |
GET /notifications | MIS and system notifications since a time |
PUT /devices/{deviceId}/push-token | Store or rotate the FCM push token |
Farmer profile
Farmer hub (option tiles)
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId} | One hydrated farmer (get-or-create) |
GET /farmers/{farmerId}/abstract | Farmer abstract for a season |
Farmer list & search
| Today: call | Use |
|---|---|
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneWorkNodeFarmerListGeoWise/executecommons-report-service | Download the flattened farmer list, page by page (resumable). |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneWorkNodeFarmerListGeoWiseUnit/executecommons-report-service | Download the farmer list for a Unit In-charge / FMT. |
POST /ptld/api/customworknode/v1/worknodeietag/urviProgram TLD (ptld) | Create the full server-side farmer (IE) from the flat record; also used as get-or-create when a farmer is opened. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /endorsements | Endorsement statuses (VO, SHG, farmer) |
Add/Edit farmer (IE profile)
| Today: call | Use |
|---|---|
GET /ctld/api/ierolemap/v1?criteria=isActive=true AND iE.id in (...)Common TLD (ctld) | Download farmer role maps for a chunk of farmers. |
POST /ptld/api/customworknode/v1/worknodeietag/urviProgram TLD (ptld) | Create the full server-side farmer (IE) from the flat record; also used as get-or-create when a farmer is opened. |
POST /ptld/api/customworknode/v1/worknodeietag/urvi/ieProgram TLD (ptld) | Create a new farmer. |
PATCH /ptld/api/customworknode/v1/worknodeietag/urvi/ieProgram TLD (ptld) | Update a farmer profile or farming category / gap start date. |
PUT /ctld/api/ie/v1/iconpicCommon TLD (ctld) | Upload a farmer profile photo. |
POST /ctld/api/ierolemap/v1Common TLD (ctld) | Assign a role to a farmer. |
DELETE /ctld/api/ierolemap/v1?iERoleMapId=Common TLD (ctld) | Remove a farmer role. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId} | One hydrated farmer (get-or-create) |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Farmer category (Farmer/C4/C5)
| Today: call | Use |
|---|---|
GET /gateway/commons-report-service/api/v1/datasets/name/PLUS_ONE_FARMING_CATEGORY_LAST_UPDATE_DATE/executecommons-report-service | Get each farmer's farming-category last update (gap start) date. |
PATCH /ptld/api/customworknode/v1/worknodeietag/urvi/ieProgram TLD (ptld) | Update a farmer profile or farming category / gap start date. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
POST /sync/batch | Apply an ordered batch of offline mutations |
Assets & land
Land assets
| Today: call | Use |
|---|---|
GET S3 igx-static-data/asset/ref_data.jsonS3 static data | Load asset (land/cattle) reference data. |
GET S3 igx-static-data/asset/classification.jsonS3 static data | Load asset classification data. |
GET /gateway/asset-service/api/v1/assets/ownerEntities?ownerEntityIdList=&ownerEntityType=OWNER_ENTITY.IEasset-service | Download land and cattle assets for a chunk of farmers (or the cadre, with OWNER_ENTITY.BRIDGE_USER). |
GET /gateway/asset-service/api/v1/asset/attachment/bulk?assetIds=asset-service | Download asset attachments (KML geofences, images) in bulk. |
GET /gateway/commons-report-service/api/v1/datasets/name/DisabledAssetCodeForCadre/executecommons-report-service | Get land codes that were disabled on the server so the app can mark them disabled. |
GET /gateway/asset-service/api/v1/assets/{assetId}asset-service | Refetch one asset from the server to repair a sync error. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetOwnedLandByIEID/executecommons-report-service | Get a farmer's owned land, used to validate land entries. |
GET /rtld/api/dataset/v1/execute?name=PlusOneGetATMNFUsedAcreageByIEIDReporting datasets (rtld) | Get acreage already used by ATM/natural farming, used to validate entries. |
POST /gateway/asset-service/api/v1/assets/asset-service | Create a land or cattle asset. |
PATCH /gateway/asset-service/api/v1/assets/asset-service | Update land or cattle assets. |
DELETE /gateway/asset-service/api/v1/assets/{id}?reason=asset-service | Disable (soft-delete) a land asset. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId}/lands | A farmer's land parcels |
GET /farmers/{farmerId}/metrics | Owned, leased, used and available acres |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
GET /files/{fileId} | File metadata and signed download URL |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Leased land
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /geo/children | Children of a geography node |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/search | Search farmers in a geography (online) |
GET /farmers/{farmerId}/lands | A farmer's land parcels |
GET /farmers/{farmerId}/metrics | Owned, leased, used and available acres |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Geofencing
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId}/lands | A farmer's land parcels |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
GET /files/{fileId} | File metadata and signed download URL |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Livestock
| Today: call | Use |
|---|---|
GET S3 igx-static-data/asset/ref_data.jsonS3 static data | Load asset (land/cattle) reference data. |
GET S3 igx-static-data/asset/classification.jsonS3 static data | Load asset classification data. |
GET /gateway/asset-service/api/v1/assets/ownerEntities?ownerEntityIdList=&ownerEntityType=OWNER_ENTITY.IEasset-service | Download land and cattle assets for a chunk of farmers (or the cadre, with OWNER_ENTITY.BRIDGE_USER). |
POST /gateway/asset-service/api/v1/assets/asset-service | Create a land or cattle asset. |
PATCH /gateway/asset-service/api/v1/assets/asset-service | Update land or cattle assets. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
POST /sync/batch | Apply an ordered batch of offline mutations |
Crop stock (inventory)
| Today: call | Use |
|---|---|
GET /ctld/api/product/v1 (generated ProductAPI.getProduct)Common TLD (ctld) | Load the tenant product (crop/input) master. |
GET /ctld/api/inventory/inventoryproduct/v1?inventoryId=0&criteria=isActive=true AND inventory.supervisor.actorId in (...)Common TLD (ctld) | Download inventory products for farmers (or the cadre). |
POST /ctld/api/inventory/inventoryproduct/custominventoryproduct/v1Common TLD (ctld) | Add inventory products for a farmer. |
PATCH /ctld/api/inventory/inventoryproduct/v1?inventoryId=Common TLD (ctld) | Update inventory products. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
POST /sync/batch | Apply an ordered batch of offline mutations |
Farming models & harvest
365 DKG kitchen garden
| Today: call | Use |
|---|---|
GET /gateway/portfolio-service/api/v1/farming-model/ownerEntities?ownerEntityIds=&ownerEntityType=ENTITY_TYPE.IEportfolio-service | Download farming models (ATM/DKG) for a chunk of farmers. |
POST /gateway/portfolio-service/api/v1/farming-modelportfolio-service | Create a farming model (ATM / DKG). |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId}/farming-models | A farmer's ATM plots and DKG answers |
POST /sync/batch | Apply an ordered batch of offline mutations |
ATM model (Anytime Money plot)
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId}/metrics | Owned, leased, used and available acres |
GET /farmers/{farmerId}/farming-models | A farmer's ATM plots and DKG answers |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
GET /files/{fileId} | File metadata and signed download URL |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
ATM harvest
| Today: call | Use |
|---|---|
POST /gateway/portfolio-service/api/v1/farming-model/harvest/{entityId}/{entityType}portfolio-service | Record an ATM harvest. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId}/farming-models | A farmer's ATM plots and DKG answers |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Crop Actual harvest
| Today: call | Use |
|---|---|
POST /gateway/portfolio-service/api/v1/portfolios/harvest/{id}/ENTITY_TYPE.IEportfolio-service | Record a crop harvest. Sent through the queue or online. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId}/crop-blocks | A farmer's Crop Actual blocks for a season / month |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Planning & tracking
Analytics dashboard
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /analytics/dashboard | MIS dashboard for cadre or unit |
Crop Plan
Crop Actual (portfolio)
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId}/metrics | Owned, leased, used and available acres |
GET /farmers/{farmerId}/crop-blocks | A farmer's Crop Actual blocks for a season / month |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
GET /files/{fileId} | File metadata and signed download URL |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
PMDS and A Grade crop details
| Today: call | Use |
|---|---|
POST /gateway/portfolio-service/api/v1/portfolios/line-items/v2?logCropActivity=true&actorType&actorIdportfolio-service | Create a crop plan entry (portfolio with one line item). |
PUT /gateway/portfolio-service/api/v1/portfolios/{pid}/portfolioLineItem/v2/crop-activityportfolio-service | Edit a crop line item and log the crop activity change. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/{farmerId}/crop-blocks | A farmer's Crop Actual blocks for a season / month |
POST /sync/batch | Apply an ordered batch of offline mutations |
Certification survey
| Today: call | Use |
|---|---|
GET /gateway/assessment-service/api/v1/assessmentInstanceAssessesassessment-service | List assessments for an actor (activity history, certification). |
POST /gateway/assessment-service/api/v1/aiadefaultresponses/attachment/uuidassessment-service | Upload an assessment (AIA) attachment. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /assessments | Assessment definitions and past submissions |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Compact Block
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId}/crop-blocks | A farmer's Crop Actual blocks for a season / month |
GET /compact-blocks | Compact blocks for VOs |
GET /compact-blocks/eligible-tiles | Tiles eligible for a compact block |
POST /sync/batch | Apply an ordered batch of offline mutations |
Activity Tracker
| Today: call | Use |
|---|---|
PUT /gateway/portfolio-service/api/v1/portfolios/{pid}/portfolioLineItem/v2/crop-activityportfolio-service | Edit a crop line item and log the crop activity change. |
GET /gateway/assessment-service/api/v1/assessmentInstanceAssessesassessment-service | List assessments for an actor (activity history, certification). |
POST /gateway/assessment-service/api/v1/aiadefaultresponses/attachment/uuidassessment-service | Upload an assessment (AIA) attachment. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /assessments | Assessment definitions and past submissions |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
KAP / Annual Action Plan 2025-26
| Today: call | Use |
|---|---|
GET /rtld/api/dataset/v1/execute?name=AAP_REJECT_REASONReporting datasets (rtld) | Load the reasons a reviewer can pick when rejecting an annual action plan. |
GET /gateway/commons-report-service/api/v1/datasets/name/AAP2025_26/executecommons-report-service | Download 2025-26 annual action plans for a chunk of farmers. |
GET /gateway/asset-service/api/v1/annual-action-plan-extended?ownerEntityIds=&ownerEntityType=ENTITY_TYPE.IEasset-service | Get 2025-26 annual action plans (extended) for farmers. |
GET /rtld/api/dataset/v1/execute?name=PlusOneAAP2526IEIDStatusReporting datasets (rtld) | Get the review status of farmers' 2025-26 action plans. |
POST /gateway/asset-service/api/v1/annual-action-plan-extendedasset-service | Create a 2025-26 annual action plan. |
PUT /gateway/asset-service/api/v1/annual-action-plan-extendedasset-service | Update a 2025-26 annual action plan. |
PATCH /gateway/asset-service/api/v1/annual-action-plansasset-service | Update a 2024-25 (legacy season) annual action plan. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/snapshot | Cursor-paged hydrated farmer snapshot |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
GET /farmers/{farmerId}/metrics | Owned, leased, used and available acres |
GET /farmers/{farmerId}/plan | KAP / annual action plan for a season |
POST /sync/batch | Apply an ordered batch of offline mutations |
VO & endorsements
Farmer endorsement details
| Today: call | Use |
|---|---|
GET /gateway/asset-service/api/v1/endorsement/me?page&sizeasset-service | Download endorsements (reviews) assigned to or made by the user. |
GET /gateway/asset-service/api/v1/endorsementComment?entityID&entityType&page&sizeasset-service | Load comments on an endorsed entity. |
POST /gateway/asset-service/api/v1/endorsement/bulk/save-allasset-service | Save one or more endorsements (approve/reject). Sent online or through the offline queue. |
GET /rtld/api/dataset/v1/execute?name=PlusOneMasterFarmerIEID2425Reporting datasets (rtld) | 2024-25 farmer abstract by IE id (first try). |
GET /rtld/api/dataset/v1/execute?name=PlusOneMasterFarmerIEUUID2425Reporting datasets (rtld) | 2024-25 farmer abstract by UUID (fallback). |
POST /gateway/asset-service/api/v1/endorsementCommentasset-service | Post a comment on an endorsement. |
| App Service v2: operation | Use |
|---|---|
GET /geo/children | Children of a geography node |
GET /farmers/{farmerId} | One hydrated farmer (get-or-create) |
GET /farmers/search | Search farmers in a geography (online) |
GET /farmers/{farmerId}/abstract | Farmer abstract for a season |
GET /farmers/{farmerId}/plan | KAP / annual action plan for a season |
GET /endorsements | Endorsement statuses (VO, SHG, farmer) |
GET /endorsements/{entityType}/{entityId}/comments | Comment thread of an endorsed entity |
GET /endorsements/{entityType}/{entityId}/eligibility | Why an endorsement action is allowed or blocked |
POST /sync/batch | Apply an ordered batch of offline mutations |
VO / SHG / Farmer endorsement
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
GET /farmers/search | Search farmers in a geography (online) |
GET /farmers/{farmerId}/plan | KAP / annual action plan for a season |
GET /endorsements | Endorsement statuses (VO, SHG, farmer) |
GET /endorsements/{entityType}/{entityId}/comments | Comment thread of an endorsed entity |
GET /endorsements/{entityType}/{entityId}/eligibility | Why an endorsement action is allowed or blocked |
GET /vo/{voId}/abstract | VO abstract download link |
GET /shg/{shgId}/abstract | SHG abstract download link |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
GET /files/{fileId} | File metadata and signed download URL |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
VO geographic filter (FCCC)
| Today: call | Use |
|---|---|
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetAllDistricts/executecommons-report-service | List districts. Same call duplicated in three client classes. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetAllMandalsForDistrict/executecommons-report-service | List mandals in a district. Same call duplicated in three client classes. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetAllVillagesForMandal/executecommons-report-service | List villages in a mandal. Same call duplicated in three client classes. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetAllVOForVillage/executecommons-report-service | List village organisations (VOs) in a village. Same call duplicated in three client classes. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneGetAllHabitationForVOAliasId/executecommons-report-service | List habitations under a VO. Same call duplicated in three client classes. |
GET /gateway/commons-report-service/api/v1/datasets/name/PlusOneWorkNodeFarmerListGeoWiseNoPagination/executecommons-report-service | List farmers in a geography without paging (endorsement screens). |
| App Service v2: operation | Use |
|---|---|
GET /geo/children | Children of a geography node |
GET /farmers/search | Search farmers in a geography (online) |
VO / SHG surveys
| App Service v2: operation | Use |
|---|---|
GET /assessments | Assessment definitions and past submissions |
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
Support & admin
Settings
| Today: call | Use |
|---|---|
PATCH /gateway/urvi-app-service/api/v1/user-device-sessions/users/{userId}?remarks=urvi-app-service | Expire all device sessions of the user. |
POST /sync-service/api/v1/data/sosync-service | Upload a snapshot of the whole offline queue for support. |
SDK Firebase Remote ConfigFirebase | Read the show_force_sync flag (show_analytics_tab and current_season_value are fetched but unused). |
| App Service v2: operation | Use |
|---|---|
POST /auth/logout | Log out and revoke tokens |
GET /config | Typed config bundle (ETag) |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
POST /sync/batch | Apply an ordered batch of offline mutations |
GET /sync/batches/{batchId} | Status of an asynchronously processed batch |
POST /telemetry | Screen events and sync-health counters (no PII) |
Pending sync
| App Service v2: operation | Use |
|---|---|
POST /auth/refresh | Rotate the refresh token |
GET /farmers/changes | Delta sync: upserts and tombstones since a cursor |
POST /sync/batch | Apply an ordered batch of offline mutations |
GET /sync/batches/{batchId} | Status of an asynchronously processed batch |
POST /files | Create a file upload (resumable or single-shot) |
PATCH /files/{fileId} | Append a chunk to a resumable upload |
HEAD /files/{fileId} | Current offset of a resumable upload |
POST /telemetry | Screen events and sync-health counters (no PII) |
Sync error log
| Today: call | Use |
|---|---|
PATCH /gateway/urvi-app-service/api/v1/remote-app-actions/{id}/executionurvi-app-service | Report a remote command as done, optionally attaching a zip of the app databases. |
GET /gateway/asset-service/api/v1/assets/{assetId}asset-service | Refetch one asset from the server to repair a sync error. |
GET /gateway/portfolio-service/api/v1/portfolios/portfolioLineItems?portfolioLineItems=portfolio-service | Refetch crop line items from the server (overwrite local after a compact-block edit lock, or pick a harvest target). |
POST /sync-service/api/v1/data/sosync-service | Upload a snapshot of the whole offline queue for support. |
POST /sync-service/api/v1/data/clickstreamsync-service | Upload screen/action analytics. |
SDK Firestore SYNC_LOG / PLI_IMAGE / URVI_ATTACHMENT_ISSUEFirebase | Write sync-failure copies (every 10th attempt), crop-photo fallback metadata and attachment issues. |
SDK Firebase Storage userId/farmerId/pliId/pliId.extFirebase | Fallback upload for crop photos that keep failing. |
SDK Firestore / Storage DB zip dumpFirebase | Upload a zip of the app databases to Firebase Storage (urvi_clear_app_data/) before wiping data. |
| App Service v2: operation | Use |
|---|---|
POST /sync/batch | Apply an ordered batch of offline mutations |
POST /telemetry | Screen events and sync-health counters (no PII) |
Program configuration and instructions
| Today: call | Use |
|---|---|
GET /gateway/portfolio-service/api/v1/ref-data/class/CLASS.PORTFOLIO_APP_CONFIG?page&size=100&direction=ASCportfolio-service | Load app config: feature flags, current season, retry delay, pagination and chunk sizes. |
GET /rtld/api/dataset/v1/execute?name=PlusOnePortfolioAppConfigReporting datasets (rtld) | Load program configuration for the program info screen. |
GET /rtld/api/dataset/v1/execute?name=PlusOneInstructionsReporting datasets (rtld) | Load program instructions. |
| App Service v2: operation | Use |
|---|---|
GET /config | Typed config bundle (ETag) |
Login history
| Today: call | Use |
|---|---|
GET /rtld/api/dataset/v1/execute?name=PlusOneCadreLoginHistoryReporting datasets (rtld) | Cadre login history. |
| App Service v2: operation | Use |
|---|---|
GET /me/login-history | The signed-in user's login history |