Skip to content

Request (akoya_request)

A Request is an application for funding — either a grant (general-purpose or program-specific) or a scholarship (education-focused). It's the central record for the grants workflow: application intake, review, board decisions, award amounts, and subsequent payments and requirements. The same entity handles both grants and scholarships; scholarships populate additional demographic and academic columns.

At a glance

Display name Request
Logical name akoya_request
Primary ID attribute akoya_requestid
Entity set name (Web API) akoya_requests
Ownership UserOwned
Change tracking Enabled
Audit Enabled

Large entity

akoya_request has 100+ custom attributes to support both grant and scholarship workflows. This page documents the columns most relevant to integration partners. Specialized scholarship-only evaluation columns, legacy-format duplicates, and demographic multiselect pickets are omitted for brevity — the Phase 2 metadata generator will produce the exhaustive list.

Web API

GET  {org}/api/data/v9.2/akoya_requests
GET  {org}/api/data/v9.2/akoya_requests({requestid})
POST {org}/api/data/v9.2/akoya_requests
PATCH {org}/api/data/v9.2/akoya_requests({requestid})

Attributes

Application lifecycle

Display name Logical name Type Required Description
Application ID akoya_applicationid String (10) None External or legacy application identifier.
Grant Name akoya_grantname String (200) None Program / grant title.
Request Received akoya_datereceived DateTime None Application submission date.
Request Acknowledged akoya_dateacknowledged DateTime None Confirmation sent.
Decision Date akoya_decisiondate DateTime None Approval / denial date.
Date Notified akoya_datenotified DateTime None Applicant notification sent.
Contract Received akoya_datecontractreceived DateTime None Signed docs received.
Begin Date akoya_begindate DateTime None Award period start.
End Date akoya_enddate DateTime None Award period end / project completion.
Grant Received Date akoya_grantreceived DateTime None Funds arrived.
Denial Reason akoya_denialreason Choice None Global option set.

Financial

All money columns have paired _Base system columns.

Display name Logical name Description
Grant Amendment akoya_amendment Award modification amount.
Balance akoya_balance Remaining unpaid award.
Balanced akoya_balanced Boolean — all payments received.
Financial Aid akoya_financialaid Other aid available to applicant.
Gift Aid akoya_giftaid Grant / gift aid amount.
Housing Cost akoya_housingcost Room and board (scholarships).
Income akoya_income Applicant family / individual income.

Grant classification

Display name Logical name Type Description
Grant Type akoya_granttype Choice Scholarship / merit / need-based / general (global option set).
Grant Payment Schedule akoya_grantpaymentschedule Choice Payout frequency (global option set).
First Choice akoya_firstchoice Boolean Top-priority ranking on a ranked application.
Is Going to Attend akoya_isgoingtoattend Boolean Enrollment confirmation.
International Student akoya_internationalstudent Boolean Non-US citizenship.
Conditions akoya_conditions String (100) Award condition summary.

Scholarship-specific

Display name Logical name Type
High School GPA akoya_highschoolGPA Decimal
College GPA akoya_collegegpa2 Decimal
College Type akoya_collegetype Choice
College Year akoya_collegeyear Choice
Class Rank akoya_classrank Integer
Class Size akoya_classsize Integer
Class Rank Score akoya_classrankscore Decimal
ACT akoya_act Integer
Evaluation Score akoya_evaluationscore Integer
Honor akoya_honor String (100)
Honor Society akoya_honorsociety String (100)
Grades Included in GPA akoya_gradesincludedgpa String (100)

Duplicate GPA columns

The entity has both akoya_collegegpa (integer, legacy) and akoya_collegegpa2 (decimal, current). Prefer akoya_collegegpa2 for new integrations. Same pattern exists for akoya_hsgpa (int, legacy) vs. akoya_highschoolGPA (decimal).

Narrative

Display name Logical name Max length
Activities akoya_activities 2000
Employment History akoya_employmenthistory 2000
Collaboration akoya_collaboration 4000
DEI Training akoya_deitraining 4000
Board Summary Notes akoya_boardsummarynotes 100
Comments akoya_comments 2000

Demographic multiselects

The following are multiselect picklists referencing global option sets. Values are not inline in this entity and will be rendered on the Global option sets page once the generator is wired up.

  • akoya_age, akoya_disability, akoya_economic, akoya_ethnicity, akoya_gender, akoya_hispaniclatino, akoya_race

Demographic fields are extensible

Values in demographic option sets may be added over time. Partners should query the live option set definitions rather than hard-coding values, to avoid breaking when a new option ships.

Lookups — quick reference

Logical name Navigation property Target Purpose
akoya_applicantid akoya_ApplicantId contact Required. Applicant / recipient.
akoya_college akoya_College account Educational institution (organization account).
akoya_concept akoya_Concept akoya_concept Funding program / concept record.
akoya_grantnameid akoya_GrantNameId (grant program) Grant program definition.
akoya_budgetfy akoya_BudgetFY (budget fiscal year) Fiscal year budget record.
akoya_budgetlineitem akoya_BudgetLineItem (budget line) Budget detail.
akoya_goanumberid akoya_GoaNumberId (external portal) GOapply portal reference.
akoya_goreviewer akoya_GoReviewer systemuser Portal reviewer.
akoya_letterofrecid akoya_LetterOfRecId (letter of rec) Reference letter record.

External integration columns

Logical name Purpose
akoya_goanumberid GOapply portal ID.
akoya_goerrormessage Sync error message from external portal.
akoya_goreviewer Portal reviewer user.

Relationships

One-to-Many (child records)

Related entity Role
akoya_requestpayment Payment schedule lines and requirement records for this request.
akoya_proposal Proposals submitted in response to this request.

Many-to-One

Target Attribute
contact akoya_applicantid (required)
account akoya_college
akoya_concept akoya_concept

Supported messages

Message Supported
Create
Retrieve
RetrieveMultiple
Update
Delete
Upsert — (no alternate keys; use GET then PATCH)

Privileges

Privilege Purpose
prvReadakoya_request Read request records
prvCreateakoya_request Create request records
prvWriteakoya_request Update request records
prvAppendToakoya_request Associate child records (payments, requirements)

Examples

Conventions

Examples assume ORG (env URL), access_token (valid bearer), headers (standard Dataverse headers dict), and service (a ServiceClient instance). See Authentication.

Open requests awaiting decision

GET {org}/api/data/v9.2/akoya_requests?
  $select=akoya_applicationid,akoya_grantname,akoya_datereceived,akoya_granttype&
  $filter=statecode eq 0 and akoya_decisiondate eq null&
  $expand=akoya_ApplicantId($select=fullname,emailaddress1)&
  $orderby=akoya_datereceived asc
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_requests?\$select=akoya_applicationid,akoya_grantname,akoya_datereceived,akoya_granttype&\$filter=statecode%20eq%200%20and%20akoya_decisiondate%20eq%20null&\$expand=akoya_ApplicantId(\$select=fullname,emailaddress1)&\$orderby=akoya_datereceived%20asc" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "OData-Version: 4.0" \
  -H "OData-MaxVersion: 4.0"
r = requests.get(
    f"{ORG}/api/data/v9.2/akoya_requests",
    params={
        "$select": "akoya_applicationid,akoya_grantname,akoya_datereceived,akoya_granttype",
        "$filter": "statecode eq 0 and akoya_decisiondate eq null",
        "$expand": "akoya_ApplicantId($select=fullname,emailaddress1)",
        "$orderby": "akoya_datereceived asc",
    },
    headers=headers,
)
requests_open = r.json()["value"]
var query = new QueryExpression("akoya_request") {
    ColumnSet = new ColumnSet("akoya_applicationid", "akoya_grantname", "akoya_datereceived", "akoya_granttype"),
    Criteria = {
        Conditions = {
            new ConditionExpression("statecode", ConditionOperator.Equal, 0),
            new ConditionExpression("akoya_decisiondate", ConditionOperator.Null)
        }
    },
    Orders = { new OrderExpression("akoya_datereceived", OrderType.Ascending) }
};
var openRequests = service.RetrieveMultiple(query);

Approved awards with payment schedules

GET {org}/api/data/v9.2/akoya_requests?
  $select=akoya_applicationid,akoya_grantname,akoya_amendment,akoya_balance,akoya_begindate,akoya_enddate&
  $filter=statecode eq 0 and akoya_decisiondate ne null and akoya_balance gt 0
Accept: application/json
OData-Version: 4.0
OData-MaxVersion: 4.0
curl "https://{org}.crm.dynamics.com/api/data/v9.2/akoya_requests?\$select=akoya_applicationid,akoya_grantname,akoya_amendment,akoya_balance,akoya_begindate,akoya_enddate&\$filter=statecode%20eq%200%20and%20akoya_decisiondate%20ne%20null%20and%20akoya_balance%20gt%200" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "OData-Version: 4.0" \
  -H "OData-MaxVersion: 4.0"
r = requests.get(
    f"{ORG}/api/data/v9.2/akoya_requests",
    params={
        "$select": "akoya_applicationid,akoya_grantname,akoya_amendment,akoya_balance,akoya_begindate,akoya_enddate",
        "$filter": "statecode eq 0 and akoya_decisiondate ne null and akoya_balance gt 0",
    },
    headers=headers,
)
awards = r.json()["value"]
var query = new QueryExpression("akoya_request") {
    ColumnSet = new ColumnSet("akoya_applicationid", "akoya_grantname", "akoya_amendment", "akoya_balance", "akoya_begindate", "akoya_enddate"),
    Criteria = {
        Conditions = {
            new ConditionExpression("statecode", ConditionOperator.Equal, 0),
            new ConditionExpression("akoya_decisiondate", ConditionOperator.NotNull),
            new ConditionExpression("akoya_balance", ConditionOperator.GreaterThan, 0)
        }
    }
};
var awards = service.RetrieveMultiple(query);

Change history

Schema extracted from the Akoyanet solution XML on 2026-04-24. Global option set values (akoya_granttype, akoya_denialreason, demographic sets) and the full 100+ attribute roster will be populated by the Phase 2 metadata generator.