GraphQL Queries
All queries are read-only operations sent as POST /graphql. Queries require at minimum a valid bearer token and X-Tenant-Id header. See Overview for request format details.
Policy Queries
getPolicy
Retrieve a single policy by its unique identifier.
query GetPolicy($id: ID!) {
getPolicy(id: $id) {
id
policyModule
policyFunction
version
status
createdAt
updatedAt
source
}
}Variables
{
"id": "pol-abc123"
}curl -X POST https://policy.aster-lang.dev/graphql \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "X-Tenant-Id: acme-corp" \
-d '{
"query": "query GetPolicy($id: ID!) { getPolicy(id: $id) { id policyModule policyFunction version status createdAt updatedAt } }",
"variables": { "id": "pol-abc123" }
}'const response = await fetch('https://policy.aster-lang.dev/graphql', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
'X-Tenant-Id': 'acme-corp',
},
body: JSON.stringify({
query: `
query GetPolicy($id: ID!) {
getPolicy(id: $id) {
id
policyModule
policyFunction
version
status
createdAt
updatedAt
}
}
`,
variables: { id: 'pol-abc123' },
}),
});
const { data, errors } = await response.json();listPolicies
Retrieve all policies visible to the tenant.
query ListPolicies {
listPolicies {
id
policyModule
policyFunction
version
status
updatedAt
}
}curl -X POST https://policy.aster-lang.dev/graphql \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "X-Tenant-Id: acme-corp" \
-d '{ "query": "query { listPolicies { id policyModule policyFunction version status updatedAt } }" }'const response = await fetch('https://policy.aster-lang.dev/graphql', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
'X-Tenant-Id': 'acme-corp',
},
body: JSON.stringify({
query: `
query {
listPolicies {
id
policyModule
policyFunction
version
status
updatedAt
}
}
`,
}),
});
const { data } = await response.json();
// data.listPolicies → Policy[]Industry-Specific Queries
These queries invoke domain-specific policy evaluation logic and return structured decision results. Each query passes its arguments through the policy engine and returns an industry-appropriate response type.
generateLifeQuote
Generate a life insurance quote based on applicant parameters.
query GenerateLifeQuote($input: LifeQuoteInput!) {
generateLifeQuote(input: $input) {
premium
coverageAmount
term
eligibility
exclusions
}
}calculateLifeRiskScore
Calculate a risk score for a life insurance applicant.
query CalculateLifeRiskScore($input: LifeRiskInput!) {
calculateLifeRiskScore(input: $input) {
score
band
factors
}
}generateAutoQuote
Generate an automobile insurance quote.
query GenerateAutoQuote($input: AutoQuoteInput!) {
generateAutoQuote(input: $input) {
annualPremium
monthlyPremium
coverageOptions {
type
included
premium
}
}
}checkServiceEligibility
Determine whether a customer is eligible for a specific service.
query CheckServiceEligibility($input: ServiceEligibilityInput!) {
checkServiceEligibility(input: $input) {
eligible
reason
eligibleServices
ineligibleServices {
service
reason
}
}
}processClaim
Evaluate and process an insurance or service claim.
query ProcessClaim($input: ClaimInput!) {
processClaim(input: $input) {
approved
approvedAmount
denialReason
requiredDocuments
referenceNumber
}
}evaluateLoanEligibility
Assess a borrower's eligibility for a loan product.
query EvaluateLoanEligibility($input: LoanEligibilityInput!) {
evaluateLoanEligibility(input: $input) {
eligible
maxApprovedAmount
interestRate
term
conditions
rejectionReasons
}
}evaluateCreditCardApplication
Evaluate a credit card application and determine the approved credit limit.
query EvaluateCreditCardApplication($input: CreditCardApplicationInput!) {
evaluateCreditCardApplication(input: $input) {
approved
creditLimit
interestRate
cardType
conditions
rejectionReasons
}
}evaluateEnterpriseLoan
Evaluate a commercial or enterprise loan application.
query EvaluateEnterpriseLoan($input: EnterpriseLoanInput!) {
evaluateEnterpriseLoan(input: $input) {
eligible
approvedAmount
interestRate
collateralRequired
conditions
rejectionReasons
}
}evaluatePersonalLoan
Evaluate a personal loan application.
query EvaluatePersonalLoan($input: PersonalLoanInput!) {
evaluatePersonalLoan(input: $input) {
eligible
approvedAmount
interestRate
monthlyRepayment
term
conditions
rejectionReasons
}
}curl -X POST https://policy.aster-lang.dev/graphql \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "X-Tenant-Id: acme-corp" \
-d '{
"query": "query EvaluatePersonalLoan($input: PersonalLoanInput!) { evaluatePersonalLoan(input: $input) { eligible approvedAmount interestRate monthlyRepayment term } }",
"variables": {
"input": {
"applicantAge": 32,
"annualIncome": 68000,
"creditScore": 710,
"requestedAmount": 15000,
"requestedTermMonths": 36
}
}
}'const response = await fetch('https://policy.aster-lang.dev/graphql', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
'X-Tenant-Id': 'acme-corp',
},
body: JSON.stringify({
query: `
query EvaluatePersonalLoan($input: PersonalLoanInput!) {
evaluatePersonalLoan(input: $input) {
eligible
approvedAmount
interestRate
monthlyRepayment
term
conditions
rejectionReasons
}
}
`,
variables: {
input: {
applicantAge: 32,
annualIncome: 68000,
creditScore: 710,
requestedAmount: 15000,
requestedTermMonths: 36,
},
},
}),
});
const { data, errors } = await response.json();
const result = data?.evaluatePersonalLoan;