> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://ordergroove.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://ordergroove.ferndocs.com/_mcp/server.

# Eligibility Evaluation

GET https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/

Identify the retention incentives currently available to a customer by analyzing their historical claim activity and completed orders in accordance with the active eligibility criteria defined by the relevant merchant.

Reference: https://ordergroove.ferndocs.com/reference/rest-rpc-api/retention-incentives/eligibility-evaluation

## Authentication

- `x-api-key` header (required) — API Key authentication via header

## Request

### Query parameters

- `merchant_user_id` (string, optional) — The external ID of the customer for whom to retrieve the eligibility evaluation. This field is required for Application API Scope authentication and is not supported for Storefront API Scope authentication.

## Response

### 200

200

- `Retention Incentives_eligibility-evaluation_Response_200`
  - Eligible: Eligible
  - Not Eligible: Not Eligible

## Types

### Eligible

- `merchant_user_id` (string, optional)
- `eligible` (boolean, optional, default: true)
- `incentive_templates` (list of RetentionIncentivesEligibilityEvaluationGetResponsesContentApplicationJsonSchemaOneOf0IncentiveTemplatesItems, optional)

### Not Eligible

- `merchant_user_id` (string, optional)
- `eligible` (boolean, optional, default: true)
- `incentive_templates` (list of RetentionIncentivesEligibilityEvaluationGetResponsesContentApplicationJsonSchemaOneOf1IncentiveTemplatesItems, optional)

### RetentionIncentivesEligibilityEvaluationGetResponsesContentApplicationJsonSchemaOneOf0IncentiveTemplatesItems

- `name` (string, optional)
- `public_id` (string, optional)
- `type` (string, optional)
- `field` (string, optional)
- `discount_type` (string, optional)
- `value` (string, optional)
- `threshold_field` (string, optional, nullable)
- `threshold_value` (double, optional, nullable)
- `target` (string, optional)

### RetentionIncentivesEligibilityEvaluationGetResponsesContentApplicationJsonSchemaOneOf1IncentiveTemplatesItems

## Examples

### Eligible

**Response**

```json
{
  "merchant_user_id": "1",
  "eligible": true,
  "incentive_templates": [
    {
      "name": "5% off Template Discount",
      "public_id": "1",
      "type": "Discount",
      "field": "sub_total",
      "discount_type": "Discount Percent",
      "value": "5.00",
      "target": "order"
    }
  ]
}
```

**SDK Code**

```python Eligible
import requests

url = "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/"

headers = {"x-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Eligible
const url = 'https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/';
const options = {method: 'GET', headers: {'x-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Eligible
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Eligible
require 'uri'
require 'net/http'

url = URI("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java Eligible
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")
  .header("x-api-key", "<apiKey>")
  .asString();
```

```php Eligible
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/', [
  'headers' => [
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Eligible
using RestSharp;

var client = new RestClient("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Eligible
import Foundation

let headers = ["x-api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Not Eligible

**Response**

```json
{
  "merchant_user_id": "1",
  "eligible": false,
  "incentive_templates": []
}
```

**SDK Code**

```python Not Eligible
import requests

url = "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/"

headers = {"x-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Not Eligible
const url = 'https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/';
const options = {method: 'GET', headers: {'x-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Not Eligible
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Not Eligible
require 'uri'
require 'net/http'

url = URI("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java Not Eligible
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")
  .header("x-api-key", "<apiKey>")
  .asString();
```

```php Not Eligible
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/', [
  'headers' => [
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Not Eligible
using RestSharp;

var client = new RestClient("https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Not Eligible
import Foundation

let headers = ["x-api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://restapi.ordergroove.com/retention_incentives/eligibility_evaluation/")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```