Assessment definitions and past submissions
Operation
listAssessments- Call
GET /gateway/urvi-app-service/api/v2/assessments- Group
- Surveys & assessments
- Features
- Certification survey, Activity Tracker, VO / SHG surveys, Data download (Cadre)
- Replaces today
Use case. Called by data download (after farmers) and when the Certification survey, Activity Tracker or VO / SHG survey screens open, to get the assessment definitions (questions, options, rules) and the actor's past submissions for the calendar / list. Submissions go through /sync/batch (assessment_response) with photos and signatures as fileId.
Parameters
| Name | In | Type | Required | Meaning | Example |
|---|---|---|---|---|---|
X-App-Version | header | string | Yes | App version `major.minor.patch+build`. Too old -> 426 `VERSION_TOO_OLD`. · pattern ^\d+\.\d+\.\d+(\+\d+)?$ | 2.0.0+200 |
X-Device-Id | header | string (uuid) | Yes | App-scoped device UUID (not ANDROID_ID). | 6b1f2c3d-0000-4000-8000-00000000d001 |
X-Request-Id | header | string (uuid) | No | Client-generated request id for tracing; echoed in responses and problems. | 0e0c5a1b-0000-4000-8000-0000000000a1 |
Accept-Language | header | string | No | Language for messages and labels. · one of en, te, ta; default "en" | te |
X-Tenant | header | string | No | Tenant code; must match the token. Urvi: `ap.gov`. · one of ap.gov | ap.gov |
type | query | AssessmentType | No | Assessment type. · one of CERTIFICATION, ACTIVITY_TRACKER, UNIT_INCHARGE_VO, SHG, UNIT_INCHARGE, MONTHLY_PROGRESS | ACTIVITY_TRACKER |
assessee | query | string | No | `farmer:<id>`, `vo:<id>`, `shg:<id>` or `me`. · pattern ^(farmer:\d+|vo:\d+|shg:\d+|me)$ | me |
from | query | string (date) | No | Submissions on or after this date. | 2025-10-01 |
cursor | query | string | No | Opaque cursor from the previous page. · max length 512 | eyJwIjoyfQ |
pageSize | query | integer | No | Items per page. · ≥ 1; ≤ 500; default 100 | 100 |
Request
No body.
Responses
200 Assessments.
Schema AssessmentPage.
{
"assessments": [
{
"id": 910002,
"code": "ASSESSMENT_CODE_ACTIVITY_TRACKER",
"type": "ACTIVITY_TRACKER",
"title": {
"en": "Activity tracker",
"te": "Activity tracker (te)"
},
"assesseeType": "USER",
"version": 3,
"questions": [
{
"code": "APCNF_SURVEY_ACTIVITYTRACKER_001",
"text": {
"en": "Activities done today",
"te": "Activities done today (te)"
},
"type": "MULTI_CHOICE",
"required": true,
"minSelections": 1,
"options": [
{
"code": "FIELD_VISIT",
"label": {
"en": "Field visit",
"te": "Field visit (te)"
}
}
]
}
]
}
],
"submissions": [
{
"id": 920001,
"clientId": "c25fadb0-0000-4000-8000-000000000009",
"assessmentId": 910002,
"assesseeId": "me",
"responseDate": "2025-10-13",
"submittedAt": "2025-10-13T18:20:00+05:30"
}
],
"page": {
"nextCursor": null,
"hasMore": false,
"pageSize": 100
}
}| Field | Type | Required | Rules | Meaning |
|---|---|---|---|---|
assessments | Assessment[] | Yes | ||
submissions | AssessmentSubmission[] | Yes | ||
page | PageInfo | Yes |
400 Malformed request or schema violation.
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/validation-failed",
"title": "Validation failed",
"status": 400,
"detail": "One or more fields are invalid.",
"code": "VALIDATION_FAILED",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1",
"errors": [
{
"field": "/mobile",
"code": "INVALID_MOBILE",
"message": "Mobile must be 10 digits starting 6-9."
}
]
}401 Missing, invalid or expired access token. Refresh once, then ask the user to log in; pending outbox ops stay intact.
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/token-expired",
"title": "Session expired",
"status": 401,
"detail": "The access token has expired.",
"code": "TOKEN_EXPIRED",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1"
}403 Authenticated but not allowed (role, tenant, device binding or feature switch).
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/role-not-allowed",
"title": "Not allowed",
"status": 403,
"detail": "Your role cannot perform this action.",
"code": "ROLE_NOT_ALLOWED",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1"
}426 App version below the minimum; block the UI with an update prompt. Pending outbox ops are kept.
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/version-too-old",
"title": "Update required",
"status": 426,
"detail": "Please update Urvi to continue.",
"code": "VERSION_TOO_OLD",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1",
"minAppVersion": "2.0.0"
}429 Rate limited per device / user. Respect `Retry-After`.
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/rate-limited",
"title": "Too many requests",
"status": 429,
"detail": "Slow down and retry later.",
"code": "RATE_LIMITED",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1",
"retryAfterSeconds": 30
}500 Unexpected server error; retry with backoff (writes are idempotent).
Schema Problem.
{
"type": "https://urvi.example.invalid/problems/internal-error",
"title": "Server error",
"status": 500,
"detail": "Something went wrong. Please try again.",
"code": "INTERNAL_ERROR",
"requestId": "0e0c5a1b-0000-4000-8000-0000000000a1"
}