# API Policy Source: https://docs.greip.io/api-policy Greip API Updates & Deprecation Policy ## 1. Overview This policy outlines Greip’s approach to API updates, versioning, and deprecation. It ensures a smooth transition for developers when changes are introduced and provides clear guidelines on how long older versions will be supported before they are phased out. By using the Greip API, you agree to stay informed about updates and adjust your integration accordingly to maintain compatibility. ## 2. API Versioning & Updates Greip follows a versioned API approach to maintain stability while introducing improvements. Versions are structured as: ``` v[Major].[Minor].[Patch] (Example: v1.2.3) ``` * Major Updates (vX.0.0) * Introduce significant changes, including breaking changes that may require code adjustments. * Announced at least 2 months before deprecation of the previous major version. * Minor Updates (vX.Y.0) * Add new features or improvements without breaking existing functionality. * Recommended but not mandatory for users to upgrade immediately. * Patch Updates (vX.Y.Z) * Contain bug fixes, security enhancements, and performance optimizations. * Automatically applied and require no action unless otherwise stated. Developers should integrate with the latest stable version to benefit from performance, security, and feature improvements. ## 3. Deprecation & Sunset Policy To ensure long-term reliability, Greip may deprecate older API versions when necessary. The deprecation process follows these steps: ### 3.1 Deprecation Announcement * Deprecation notices will be communicated via: * Greip API Documentation (docs.greip.io) * Email notifications (for registered users with active API keys) * Dashboard alerts (if applicable) * The notice period for deprecation depends on the impact of the change: * Major version deprecation: Minimum 2 months notice before end-of-life. * Minor version deprecation: Minimum 2 months notice. * Patch versions are not deprecated individually unless a security issue arises. ### 3.2 Sunset Phase (End-of-Life) * After the deprecation period, the API version will be officially sunset and no longer accessible. * Requests to deprecated versions may return HTTP 410 (Gone) or be redirected to the latest version if possible. * API keys using outdated versions will not be disabled but will no longer work with the deprecated endpoints. ## 4. Mandatory Migrations Certain updates may require developers to migrate to a newer API version. This happens when: * Security vulnerabilities exist in the deprecated version. * Underlying technology dependencies are no longer supported. * A major architectural change is introduced. Developers are expected to proactively update their integrations to avoid disruptions. Greip will provide migration guides and technical support during transitions. ## 5. Backward Compatibility & Grace Periods * Non-breaking changes (e.g., new parameters, additional fields) will be introduced without affecting existing integrations. * Breaking changes (e.g., removal of fields, altered response formats) will be announced in advance, and a grace period will be provided. * Deprecated endpoints may remain operational in “Legacy Mode” for an extended time before final removal. ## 6. Testing New Versions * Developers can test new versions in a sandbox environment before full migration. * Greip will provide changelogs and migration documentation for major updates. ## 7. Support for Deprecated Versions * Once an API version reaches its end-of-life (EOL), it will no longer receive bug fixes, security patches, or support. * Paid enterprise users may request extended support for deprecated versions under a separate agreement. ## 8. Staying Updated To ensure a seamless experience, developers should: * ✅ Subscribe to API update notifications via their Greip dashboard. * ✅ Regularly check the [API Changelog](https://changelog.greip.io/) for upcoming changes. * ✅ Follow best practices for version handling in their implementation. For any questions regarding API updates and deprecation, contact [support@greip.io](mailto:support@greip.io). # User Data Deletion Source: https://docs.greip.io/api-reference/endpoint/account/users/delete DELETE /account/users/delete In some cases, such as data protection regulations, businesses that process personal data are required to delete it upon request. Using this method, you'll be able to delete all data related to your user in a single request. **This action cannot be undone**, all deleted data will be deleted immediately from our system. User data can be deleted 2 minutes after its creation in our system. ### Body Parameters The email address, phone number, or user ID (in your system) of the user whose data you want to delete. ```json Success { "data": { "transaction_data": 25, "ips": 4, "profanity_data": 3, "emails": 1, "phone_numbers": 1, "ibans": 10 }, "status": "success" } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties Number of transactions or transaction related data deleted. Number of IP addresses related data deleted. Number of user data deleted from the usage of Profanity Detection endpint. Number of user data deleted from the Email Scoring endpoint. Number of user data deleted from the Phone Scoring endpoint. Number of user data deleted from the IBAN Lookup endpoint. The response status. Expected values: `success`, or `error`. # ASN Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/asn GET /lookup/asn This API method allows you to look up any given Autonomous System Number (ASN) and retrieve comprehensive data associated with it. The information returned includes the ASN name, organization name, country, associated domain, contact email, phone number, and more. This functionality is essential for network analysis, troubleshooting, and understanding the infrastructure behind IP addresses. ### Query Parameters The asn command is used to specify the AS Number you want to lookup. Sample value: `AS6167` or `6167` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "asn": "AS6167", "name": "CELLCO-PART", "country": "US", "org": "Verizon Business", "phone": "+1-800-900-0241", "email": "swipper@verizon.com", "domain": "verizon.net", "status": null, "created": "2006-05-30", "type": null, "registry": null }, "status": "success", "executionTime": 4198 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties Autonomous System Number you're looking up. Name of the organization. Country code of the organization. Organization name. Phone number contact for the organization. Email contact for the organization. Domain associated with the organization. Status of the organization. Date of organization creation. Type of organization ("isp", "hosting", "business", "education", or "government"). Registration information of the organization. Response status (`success`, or `error`). Time taken to process the data (in milliseconds). # BIN/IIN Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/bin GET /lookup/bin Utilize this module to effortlessly retrieve comprehensive information associated with a debit or credit card. The API provides details such as card type (debit or credit), scheme (Visa, Mastercard, etc.), brand (gold, platinum, etc.), and bank information. This data is invaluable for various applications, including verifying customer payment details, detecting fraudulent transactions, and delivering personalized services to enhance user experiences. ### Overview The IIN (Issuer Identification Number), also known as the BIN (Bank Identification Number), is the first 6 digits of a debit or credit card number. These unique numbers are used to identify the issuing entity, such as the bank or financial institution that issued the card. One of the most common and critical use cases of this method is to detect and prevent fraud payments in your app or website. This is an essential task for any business that accepts online payments, as fraud can lead to significant financial losses and reputational damage. For example, based on of our case studies, if you notice a user from the UK purchasing large amounts of your product, and the card used for payment is issued by a bank located in the US, this could be a red flag. This may indicate that the user is using a stolen or fraudulent card to complete the checkout process. By flagging such transactions for review or rejection, you can prevent fraud and protect your business from financial loss. ### Query Parameters The BIN/IIN of the card (min: 6 digits). Sample value: `456789`, `456789XXXXXX1234`, or `4567891234567890`. The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "reason": "", "isValid": true, "blacklisted": false, "bin": "456789", "info": { "scheme": { "name": "Visa", "coName": "Mada", "isLuha": true, "isPrepaid": false, "isCommercial": false, "type": "debit", "brand": "Traditional", "currency": "SAR" }, "detected_digits": "4", "syntax": { "gaps": [4, 8, 12], "lengths": [16, 18, 19], "code": { "name": "CVV", "size": 3 } }, "bank": { "id": "588847", "identifier": "80", "name": "AL RAJHI BANKING AND INVESTMENT CORP.", "city": "Riyadh", "url": "https://www.alrajhibank.com.sa", "phone": "+96611211600", "logo": "https://greip.io/img/banks/al-rajhi.jpg", "latitude": "25", "longitude": "45" }, "country": { "alpha2": "SA", "name": "Saudi Arabia", "code": "966", "numeric": "682", "emoji": "🇸🇦", "continent": "Asia", "languageCode": "ar", "languageNative": "العربية" } }, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 2 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties Reason for the validation result. Validation result (`true` or `false`). Indicates if the BIN is blacklisted due to applying [custom rules](/knowledge-base/custom-rules/overview) or were found in one of your blacklists. The BIN/IIN of the card you passed in the request. Card scheme name. Card company name. Is the card issued by Luha? Is the card prepaid? Is the card commercial? Card type (`debit`, or `credit`). Card brand (`Traditional`, `Gold`, `Platinum`, etc.). Card currency. The digits used to detect the scheme details. The gaps variations of the card number. The possible lengths of the card number. The name of the code (e.g: CVV). The number of digits in the code. Bank ID. Bank identifier. The official bank name. The city where the bank's headquarters are located. Bank URL of the official website. Bank phone number for contact. Bank logo URL (image). Bank latitude coordinates of the country where the bank is located. Bank longitude coordinates of the country where the bank is located. Country code (in ISO 3166-1 alpha-2 format). The Country name. Country dialing code. Country numeric code. Country flag emoji. Continent where the country is located. Country language code (in ISO 639-1 format). Country native language name. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. Response status (`success`, or `error`). Time taken to process the data (in milliseconds). # Bulk IP Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/bulk-ip GET /lookup/ip/bulk This API enables you to retrieve information for multiple IP addresses in a single request. By using the `/lookup/ip/bulk` method, you can efficiently gather data such as location, ISP, and risk factors for a batch of IPs, saving time and streamlining your workflow for large-scale analysis. You can lookup upto 10 IP addresses using this method. Otherwise, you will get an error response (Code: 118). ### Query Parameters The ips command is used to specify the IP address you want to lookup. Expected values: comma serarated IP addresses (IPv4 or IPv6) Sample value: `1.1.1.1,2.2.2.2` The params command can be used to specify the required modules you want to get in the response. Expected values: `security`, `currency`, `timezone`, `location`, and/or `device` Sample value: `security,timezone,currency` For more information please refer to [Customize response modules](/options/customize-modules). The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The lang command is used to get a response in a specific language. Expected values: `EN`, `AR`, `DE`, `FR`, `ES`, `JA`, `ZH`, or `RU` For more information please refer to [Localization](/options/localization). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). # Country Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/country GET /lookup/country This method allows you to retrieve detailed information about a country by providing its country code in the request. The API returns valuable data, such as the country’s name, capital, population, region, and other relevant attributes, enabling you to enrich your applications with geographic context and enhance user experiences. ### Query Parameters The `ISO 3166-1 alpha-2` format of the country code. [Learn more](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Sample value: `GB` The params command is used to determine the data you need in the response. Expected values: `language`, `flag`, `currency`, and/or `timezone`. Sample value: `language,currency,timezone` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "countryCode": "US", "countryName": "United States", "countryGeoNameID": 6252001, "capital": "Washington, D.C.", "population": 331000000, "phoneCode": "1", "currency": { "currencyName": "United States Dollar", "currencyCode": "USD", "currencySymbol": "$" }, "language": { "name": "Portuguese", "code": "pt", "native": "Português" }, "timezone": { "name": "America/Adak", "abbreviation": "HST", "offset": -36000, "currentTime": "11:51:19", "currentTimestamp": 1643406679, "isDST": false, "sunInfo": { "sunset": "08:17:34", "sunrise": "20:08:16", "transit": "02:12:55", "civilTwilightBegin": "19:47:39", "civilTwilightEnd": "08:38:10", "nauticalTwilightBegin": "19:22:22", "nauticalTwilightEnd": "09:03:28", "astronomicalTwilightBegin": "18:57:01", "astronomicalTwilightEnd": "09:28:49", "dayLength": "11:50:42" } }, "flag": { "emoji": "🇺🇸", "unicode": "U+1F1FA U+1F1F8", "png": { "1000px": "https://www.gredev.io/img/flags/png1000px/us.png", "250px": "https://www.gredev.io/img/flags/png250px/us.png", "100px": "https://www.gredev.io/img/flags/png100px/us.png" }, "svg": "https://www.gredev.io/img/flags/svg/us.svg" }, "countryIsEU": false, "countryNeighbours": "CA,MX,CU", "tld": ".us", "continentName": "North America", "continentCode": "NA", "continentGeoNameID": 6255149 }, "status": "success", "executionTime": 0 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` # Domain Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/domain GET /lookup/domain This method allows you to retrieve detailed information about a domain by providing its domain name in the request. The API returns valuable data, such as the domain’s creation date, with some risk evaluation metrics. This endpoint still in beta stage, and it may change in the future. Currently, helps you to look up a domain name that's already available in our automated database. The domain names that are not available in our database will return `null` values for all properties, but at the same time it will trigger the automation system to start collecting data about the domain name, and it will be available in the next 24 hours after the first request. ### Query Parameters The fully qualified domain name (FQDN) to look up. [Learn more](https://en.wikipedia.org/wiki/Fully_qualified_domain_name) Sample value: `example.com` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "name": "dangerous-domain.com", "is_dangerous": true, "is_spf": false, "is_dmarc": false, "is_dkim": false, "is_mx": false, "is_bimi": false, "created_at": "2025-02-05", "is_new": true }, "status": "success", "executionTime": 0 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties The full domain name associated with the email address (for example, `gmail.com`). Indicates whether the domain is flagged as dangerous or suspicious, which may suggest a higher risk of fraud or abuse. If this property is set to `true`, the domain is considered high-risk or potentially malicious. As a result, the `isValid` property will also be `false`, indicating that the email address should not be trusted for critical communications or user registrations. It is strongly recommended to block or flag such email addresses in your application workflow. Indicates whether the domain has a valid SPF (Sender Policy Framework) record, which helps prevent email spoofing. Indicates whether the domain has a valid DMARC (Domain-based Message Authentication, Reporting, and Conformance) record, which helps protect against email phishing and spoofing. Indicates whether the domain has a valid DKIM (DomainKeys Identified Mail) record, which verifies the authenticity of the sender's domain. Indicates whether the domain has valid MX (Mail Exchange) records, confirming that it is capable of receiving emails. Indicates whether the domain has a valid BIMI (Brand Indicators for Message Identification) record, which allows brand logos to be displayed in supported email clients. The date when the domain was first registered or created, if available. Indicates whether the domain is new or recently registered (registered within 1 year), which may affect its reputation and trustworthiness. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. # Free Get-IP Source: https://docs.greip.io/api-reference/endpoint/data-lookup/free-get-ip-method This method allows you to retrieve the IP address of your visitors or users without the need for an account or API key in Greip. It’s a quick and easy way to access IP information, making it ideal for basic integrations or when you need to capture user IPs with minimal setup. **Usage example** ``` https://greipapi.com/ip ``` ```bash cURL curl --request GET \ --url https://greipapi.com/ip ``` ```python Python import requests url = "https://greipapi.com/ip" response = requests.request("GET", url) print(response.text) ``` ```javascript Javascript const options = { method: "GET" }; fetch("https://greipapi.com/ip", options) .then((response) => response.json()) .then((response) => console.log(response)) .catch((err) => console.error(err)); ``` ```php PHP "https://greipapi.com/ip", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go Go package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://greipapi.com/ip" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```java Java HttpResponse response = Unirest.get("https://greipapi.com/ip") .asString(); ``` ```json Success { "data": "165.227.149.217", "documentaion": "https://docs.greip.io", "status": "success", "executionTime": 0 } ``` # IP Geolocation Source: https://docs.greip.io/api-reference/endpoint/data-lookup/geoip GET /geoip This API allows you to retrieve detailed geolocation information for a visitor’s or user’s IP address. By using the IP Geolocation method, you can access data such as the user’s country, city, ISP, and more, enabling you to personalize user experiences, enhance security, and make data-driven decisions based on geographic insights. ### Query Parameters The params command can be used to specify the required modules you want to get in the response. Expected values: `security`, `currency`, `timezone`, `location`, and/or `device` Sample value: `security,timezone,currency` For more information please refer to [Customize response modules](/options/customize-modules). The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The lang command is used to get a response in a specific language. Expected values: `EN`, `AR`, `DE`, `FR`, `ES`, `JA`, `ZH`, or `RU` For more information please refer to [Localization](/options/localization). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "ip": "165.227.149.217", "ipType": "IPv4", "IPNumber": 2783155673, "bogon": false, "continentName": "Europe", "continentCode": "EU", "countryCode": "DE", "continentGeoNameID": 6255148, "countryName": "Germany", "countryGeoNameID": 2921044, "regionName": "Hessen", "cityName": "Frankfurt am Main", "zipCode": "65931", "latitude": "50.115520", "longitude": "8.684170", "location": { "capital": "Berlin", "population": 83783942, "language": { "name": "German", "code": "de", "native": "Deutsch" }, "flag": { "emoji": "🇩🇪", "unicode": "U+1F1E9 U+1F1EA", "png": { "1000px": "https://www.gredev.io/img/flags/png1000px/de.png", "250px": "https://www.gredev.io/img/flags/png250px/de.png", "100px": "https://www.gredev.io/img/flags/png100px/de.png" }, "svg": "https://www.gredev.io/img/flags/svg/de.svg" }, "phoneCode": "49", "countryIsEU": true, "countryNeighbours": "CH,PL,NL,DK,BE,CZ,LU,FR,AT", "tld": ".de" }, "currency": { "currencyName": "Euro", "currencyCode": "EUR", "currencySymbol": "€" }, "asn": { "asn": "AS14061", "name": "DIGITALOCEAN-ASN", "org": "DigitalOcean, LLC", "phone": "+1-347-875-6044", "email": "noc@digitalocean.com", "domain": "digitalocean.com", "created": "2012-05-14", "type": "hosting" }, "timezone": { "name": "Europe/Berlin", "abbreviation": "CET", "offset": 3600, "currentTime": "03:33:13", "currentTimestamp": 1709519593, "isDST": false, "sunInfo": { "sunset": "18:14:11", "sunrise": "06:59:29", "transit": "12:36:50", "civilTwilightBegin": "06:28:47", "civilTwilightEnd": "18:44:53", "nauticalTwilightBegin": "05:51:20", "nauticalTwilightEnd": "19:22:21", "astronomicalTwilightBegin": "05:13:27", "astronomicalTwilightEnd": "20:00:13", "dayLength": "11:14:42" } }, "security": { "isProxy": true, "proxyType": "VPN", "isTor": false, "isBot": false, "isRelay": false, "isHosting": true, "blacklisted": false }, "device": { "isMobile": false, "type": "desktop", "OS": { "type": "desktop", "name": "MacOS", "family": "macintosh", "version": "Big Sur", "title": "MacOS Big Sur", "64bits_mode": 1 }, "browser": { "name": "Safari", "version": 17.2, "versionMajor": 1, "title": "Safari 17.2" } }, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 4 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties IP address you're looking up. Type of IP address (`IPv4`, or `IPv6`). Numeric representation of the IP address. Indicates if the IP address is a bogon. Name of the continent where the IP address is. Code representation of the continent. Code representation of the country in `ISO-3166` format. GeoName ID of the continent. Name of the country. GeoName ID of the country. Name of the region. Name of the city. ZIP code of the location where the IP address belong. Latitude coordinate of the location. Longitude coordinate of the location. Capital city of the country. Population of the country. Official language of the country. Language code in `ISO-639` format. Native name of the language. Flag emoji representation. Flag Unicode representation. URL to 1000px PNG flag. URL to 250px PNG flag. URL to 100px PNG flag. URL to SVG flag. International dialing code for the country. Indicates if the country is in the EU. List of neighboring countries' codes. Top-level domain of the country. Name of the currency. Currency code in `ISO-4217` format. Symbol of the currency. Autonomous System Number. Name of the ASN. Organization associated with the ASN. Phone contact for the ASN. Email contact for the ASN. Domain associated with the ASN. Date of ASN creation. Type of organization ("isp", "hosting", "business", "education", or "government"). Timezone name. Timezone abbreviation. Timezone offset from UTC. Current time in the timezone. Current timestamp in the timezone. Indicates if Daylight Saving Time is active. Sunset time. Sunrise time. Solar transit time. Civil twilight begin time. Civil twilight end time. Nautical twilight begin time. Nautical twilight end time. Astronomical twilight begin time. Astronomical twilight end time. Length of the day. Indicates if the IP address is a proxy service. Type of proxy used. Indicates if accessed through Tor network. Indicates if the user is a bot. Indicates if it's a Apple's Private Relay connection. Indicates if the IP address belong to a hosting provider. Indicates if the IP address is blacklisted due to applying [custom rules](/knowledge-base/custom-rules/overview) or were found in one of your blacklists. Indicates if the device is a mobile device. Type of device. Type of operating system. Name of the operating system. Family of the operating system. Version of the operating system. Title of the operating system. Indicates 64-bit mode (1 for true, 0 for false). Name of the browser. Version of the browser. Major version of the browser. Title of the browser. The user-agent of the browser. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. Response status (success/error). Time taken to process the data (in milliseconds). # IBAN Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/iban GET /lookup/iban This method enables you to validate International Bank Account Numbers (IBANs) and obtain essential information about the country associated with each IBAN. By using this API, you can ensure that the IBANs are formatted correctly and gain insights into the banking institution, enhancing security and accuracy in financial transactions. ### Overview The IIN (Issuer Identification Number), also known as the BIN (Bank Identification Number), is the first 6 digits of a debit or credit card number. These unique numbers are used to identify the issuing entity, such as the bank or financial institution that issued the card. One of the most common and critical use cases of this method is to detect and prevent fraud payments in your app or website. This is an essential task for any business that accepts online payments, as fraud can lead to significant financial losses and reputational damage. For example, if you notice a user from the UK purchasing large amounts of your product, and the card used for payment is issued by a bank located in the US, this could be a red flag. This may indicate that the user is using a stolen or fraudulent card to complete the checkout process. By flagging such transactions for review or rejection, you can prevent fraud and protect your business from financial loss. ### Query Parameters The International Bank Account Number (IBAN) you want to validate. Sample value: `BE71096123456769`, or `BE71 0961 2345 6769`. The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "isValid": true, "formats": { "machine": "BE71096123456769", "human": "BE71 0961 2345 6769", "obfuscated": "BE** **** **** 6769" }, "country": { "name": "Belgium", "IANA": "be", "ISO3166": "BE", "currency": "EUR", "centralBank": { "url": "http://www.nbb.be/", "name": "National Bank of Belgium" }, "membership": "eu_member", "isEU": true, "length": "16", "isSEPA": true, "swiftOfficial": true }, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 1 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties A boolean value that you can rely on to determine if the IBAN is valid or not. Machine format of the IBAN. Human-readable format of the IBAN. Obfuscated format of the IBAN. Country name where the issuing bank is located. The [IANA](https://en.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority) of the country. Country code in `ISO3166` format. Currency of the country. The name of the central bank of the issuing country. The URL of the central bank of the issuing country. Membership type of the bank. Determines whether the user is located within the European Union (EU) and is relevant for processing transactions or validations specific to EU countries. IBAN length in this country. Indicates whether the IBAN belongs to a country participating in the Single Euro Payments Area (SEPA) Typically indicates whether the IBAN corresponds to an official institution or entity that is part of the SWIFT network, which facilitates international financial transactions. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. # IP Lookup Source: https://docs.greip.io/api-reference/endpoint/data-lookup/ip GET /lookup/ip Use this API to retrieve comprehensive information about a given IP address. It provides details such as location, ISP, and potential risk factors, enabling you to analyze and verify IP data for enhanced security, fraud prevention, and user profiling. ### Query Parameters The ip command is used to specify the IP address you want to lookup. Expected values: an IP address (IPv4 or IPv6) Sample value: `1.1.1.1` The params command can be used to specify the required modules you want to get in the response. Expected values: `security`, `currency`, `timezone`, and/or `location`. Sample value: `security,timezone,currency` For more information please refer to [Customize response modules](/options/customize-modules). The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The lang command is used to get a response in a specific language. Expected values: `EN`, `AR`, `DE`, `FR`, `ES`, `JA`, `ZH`, or `RU` For more information please refer to [Localization](/options/localization). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "ip": "165.227.149.217", "ipType": "IPv4", "IPNumber": 2783155673, "bogon": false, "continentName": "Europe", "continentCode": "EU", "countryCode": "DE", "continentGeoNameID": 6255148, "countryName": "Germany", "countryGeoNameID": 2921044, "regionName": "Hessen", "cityName": "Frankfurt am Main", "zipCode": "65931", "latitude": "50.115520", "longitude": "8.684170", "location": { "capital": "Berlin", "population": 83783942, "language": { "name": "German", "code": "de", "native": "Deutsch" }, "flag": { "emoji": "🇩🇪", "unicode": "U+1F1E9 U+1F1EA", "png": { "1000px": "https://www.gredev.io/img/flags/png1000px/de.png", "250px": "https://www.gredev.io/img/flags/png250px/de.png", "100px": "https://www.gredev.io/img/flags/png100px/de.png" }, "svg": "https://www.gredev.io/img/flags/svg/de.svg" }, "phoneCode": "49", "countryIsEU": true, "countryNeighbours": "CH,PL,NL,DK,BE,CZ,LU,FR,AT", "tld": ".de" }, "currency": { "currencyName": "Euro", "currencyCode": "EUR", "currencySymbol": "€" }, "asn": { "asn": "AS14061", "name": "DIGITALOCEAN-ASN", "org": "DigitalOcean, LLC", "phone": "+1-347-875-6044", "email": "noc@digitalocean.com", "domain": "digitalocean.com", "created": "2012-05-14", "type": "hosting" }, "timezone": { "name": "Europe/Berlin", "abbreviation": "CET", "offset": 3600, "currentTime": "03:33:13", "currentTimestamp": 1709519593, "isDST": false, "sunInfo": { "sunset": "18:14:11", "sunrise": "06:59:29", "transit": "12:36:50", "civilTwilightBegin": "06:28:47", "civilTwilightEnd": "18:44:53", "nauticalTwilightBegin": "05:51:20", "nauticalTwilightEnd": "19:22:21", "astronomicalTwilightBegin": "05:13:27", "astronomicalTwilightEnd": "20:00:13", "dayLength": "11:14:42" } }, "security": { "isProxy": true, "proxyType": "VPN", "isTor": false, "isBot": false, "isRelay": false, "isHosting": true, "blacklisted": false }, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 4 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties IP address you're looking up. Type of IP address (`IPv4`, or `IPv6`). Numeric representation of the IP address. Indicates if the IP address is a bogon. Name of the continent where the IP address is. Code representation of the continent. Code representation of the country in `ISO-3166` format. GeoName ID of the continent. Name of the country. GeoName ID of the country. Name of the region. Name of the city. ZIP code of the location where the IP address belong. Latitude coordinate of the location. Longitude coordinate of the location. Capital city of the country. Population of the country. Official language of the country. Language code in `ISO-639` format. Native name of the language. Flag emoji representation. Flag Unicode representation. URL to 1000px PNG flag. URL to 250px PNG flag. URL to 100px PNG flag. URL to SVG flag. International dialing code for the country. Indicates if the country is in the EU. List of neighboring countries' codes. Top-level domain of the country. Name of the currency. Currency code in `ISO-4217` format. Symbol of the currency. Autonomous System Number. Name of the ASN. Organization associated with the ASN. Phone contact for the ASN. Email contact for the ASN. Domain associated with the ASN. Date of ASN creation. Type of organization ("isp", "hosting", "business", "education", or "government"). Timezone name. Timezone abbreviation. Timezone offset from UTC. Current time in the timezone. Current timestamp in the timezone. Indicates if Daylight Saving Time is active. Sunset time. Sunrise time. Solar transit time. Civil twilight begin time. Civil twilight end time. Nautical twilight begin time. Nautical twilight end time. Astronomical twilight begin time. Astronomical twilight end time. Length of the day. Indicates if the IP address is a proxy service. Type of proxy used. Indicates if accessed through Tor network. Indicates if the user is a bot. Indicates if it's a Apple's Private Relay connection. Indicates if the IP address belong to a hosting provider. Indicates if the IP address is blacklisted due to applying [custom rules](/knowledge-base/custom-rules/overview) or were found in one of your blacklists. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. Response status (success/error). Time taken to process the data (in milliseconds). # Email Scoring Source: https://docs.greip.io/api-reference/endpoint/scoring/email GET /scoring/email This method provides an additional layer of validation for your system. While validating email syntax is important, it is not sufficient. This method goes beyond syntax validation by checking the domain's validity, the availability of the Mail Service, detecting Disposable Email (Temporary Emails), etc. By utilising this method, you can ensure a more thorough validation process for email addresses. ### Query Parameters The email command is used to specify the email you want to validate. Expected values: an email address Sample value: `name@domain.com` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "score": 3, "reason": "Email domain is considered dangerous.", "isValid": false, "isFree": false, "isRoleBased": true, "isEducational": false, "isDisposable": false, "blacklisted": false, "email": "test@dangerous-domain.com", "domain": { "name": "dangerous-domain.com", "is_dangerous": true, "is_spf": false, "is_dmarc": false, "is_dkim": false, "is_mx": false, "is_bimi": false, "created_at": "2025-02-05", "is_new": true }, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 1 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties A risk-score from 0 to 3 indicating how risky this email address is (0=safe, 1=low-risk, 2=high-risk, 3=too-risky). The reason behind considering this email address as risky. **Note:** The value of this property will be empty if the `score` is `0`. Indicates whether the email address is from a free email service provider. Indicates whether the email address is a role-based email address. Role-based email addresses are those that are associated with a particular role or group, such as `admin`, `support`, `info`, etc. Indicates whether the email address is an educational email address. A boolean value that you can rely on to determine if the email address is 100% safe & valid or not. Indicates whether the email address is a disposable email address (also known as Temporary Email Addresses). Indicates if the email/domain is blacklisted due to applying [custom rules](/knowledge-base/custom-rules/overview) or were found in one of your blacklists. The information associated with the domain name of the email address. The full domain name associated with the email address (for example, `gmail.com`). Indicates whether the domain is flagged as dangerous or suspicious, which may suggest a higher risk of fraud or abuse. If this property is set to `true`, the domain is considered high-risk or potentially malicious. As a result, the `isValid` property will also be `false`, indicating that the email address should not be trusted for critical communications or user registrations. It is strongly recommended to block or flag such email addresses in your application workflow. Indicates whether the domain has a valid SPF (Sender Policy Framework) record, which helps prevent email spoofing. Indicates whether the domain has a valid DMARC (Domain-based Message Authentication, Reporting, and Conformance) record, which helps protect against email phishing and spoofing. Indicates whether the domain has a valid DKIM (DomainKeys Identified Mail) record, which verifies the authenticity of the sender's domain. Indicates whether the domain has valid MX (Mail Exchange) records, confirming that it is capable of receiving emails. Indicates whether the domain has a valid BIMI (Brand Indicators for Message Identification) record, which allows brand logos to be displayed in supported email clients. The date when the domain was first registered or created, if available. Indicates whether the domain is new or recently registered (registered within 1 year), which may affect its reputation and trustworthiness. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. ## What can I expect from this API? * Detection of disposable email addresses (also known as Temporary Email Addresses) * Detection of free email service providers * Detection of role-based email addresses * Testing the email service provider of a given email address * Validation of email syntax # IP Reputation Source: https://docs.greip.io/api-reference/endpoint/scoring/ip-reputation GET /lookup/ip/threats Access comprehensive threat intelligence data linked to a specific IP address. This endpoint provides insights into malicious activity, reputation scoring, and potential security risks associated with the IP address. ### Query Parameters The ip parameter is used to specify the IP address you want to retrieve it's threat intelligence information. Expected values: an IP address (IPv4 or IPv6) Sample value: `1.1.1.1` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "status": "success", "data": { "ip": "12.12.12.12", "threats": { "isProxy": true, "proxyType": "Socks", "isTor": false, "isBot": false, "isRelay": false, "isHosting": true, "blacklisted": false }, "custom_rules_applied": { "total": 0, "rules": [] } }, "executionTime": 90 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties IP address you're looking up. Indicates if the IP address is a proxy service. Type of proxy used. Indicates if accessed through Tor network. Indicates if the user is a bot. Indicates if it's a Apple's Private Relay connection. Indicates if the IP address belong to a hosting provider. Indicates if the IP address is blacklisted due to applying [custom rules](/knowledge-base/custom-rules/overview) or were found in one of your blacklists. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. Response status (success/error). Time taken to process the data (in milliseconds). # Payment Fraud Detection Source: https://docs.greip.io/api-reference/endpoint/scoring/payment POST /scoring/payment Prevent financial losses and protect your business by deploying AI-powered modules that analyze transaction patterns in real-time. This method helps identify and block suspicious activities, mitigating the risk of fraudulent payments and ensuring a secure experience for both you and your customers. ## Overview Detecting and preventing fraudulent payments is a critical task for any business that accepts online payments. This AI-based module is designed to help you do that by analysing a range of data points related to each transaction. Using sophisticated machine learning algorithms, this method can detect and flag potentially fraudulent transactions by analysing user data, user behaviour, user device, and other factors. For example, if a transaction appears to be coming from an unusual location or device, or if the user's behaviour is inconsistent with their past transactions, this method can flag the transaction for further review or rejection. One of the key advantages of this AI-based module is its ability to adapt and learn over time. As it analyses more data and detects more fraud, it can improve its accuracy and efficiency, making it a highly effective tool for preventing financial losses due to fraud. By implementing this method in your payment processing system, you can help protect your business and your customers from fraudulent activity, while providing a seamless and secure payment experience. "ECOMMERCE LOSSES TO ONLINE PAYMENT FRAUD TO **EXCEED \$48 BILLION** GLOBALLY IN 2023, AS FRAUD INCURSIONS EVOLVE", according to a recent report by Juniper Research. ## Integration Workflow ![Greip Payment Fraud Module - Workflow](https://mintlify.s3.us-west-1.amazonaws.com/greip/images/payment-fraud-flow.png) ### Body Parameters The action your customer try to implement. Accepts: `purchase`, `deposit`, or `withdrawal`. The domain name of the website the customer trying to purchase from. Sample value: `domain.com` The name of the website the customer trying to purchase from. Sample value: `Nike Store, California` If your a service provider with "sub-websites" (like Shopify), then provide a unique identification code indicating the website the customer trying to purchase from. Sample values: `12330098`, `01as-aowq-029jd`, or `abcdefg`. The identification code of the shipment. The identification code of the transaction in your system. The total amount of the transaction. The currency in which the customer pay with. Sample value: `GBP` Set this to true if the customer is purchasing a digital product. The promo code used by the customer to complete the checkout. The identification number of the customer in your system. The first name of the customer. The last name of the customer (Family Name). The Place of Birth of the customer. The IP address of the customer. The `ISO 3166-1 alpha-2` code format of the country where the customer live. [Learn more](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) The name of the region where the customer live. The name of the city where the customer live. The name of the zip code of customer location. The "address line 1" of the customer. The "address line 2" of the customer. The customer latitude on the map (GPS Coordinates). The customer longitude on the map (GPS Coordinates). The device identification code of the customer. The phone number of the customer (international format). The registration date of the customer (UNIX Timestamp). If you offer a Wallet feature in your website, then pass the user balance to this pararmeter. The customer's date of birth. Sample value: '1985-12-27\` The email address of the customer. Set this to true if the customer has 2FA enabled in his/her account. Pass the [User Agent](https://en.wikipedia.org/wiki/User_agent) of the customer to this parameter. The shipping country code of the customer (in `ISO 3166-1 alpha-2` format). The shipping region name of the customer. The shipping city name of the customer. The zip code of the customer's shipping address. The shipping "address 1" of the customer. The shipping "address 2" of the customer. The latitude of the customer's shipping address (GPS Coordinates). The longitude of the customer's shipping address (GPS Coordinates). The billing country code of the customer (in `ISO 3166-1 alpha-2` format). The billing region name of the customer. The billing city name of the customer. The zip code of the customer's billing address. The billing "address 1" of the customer. The billing "address 2" of the customer. The latitude of the customer's billing address (GPS Coordinates). The longitude of the customer's billing address (GPS Coordinates). The payment method used to complete this transaction. Accepted values: `cards`, `cards_mada`, `applepay`, `stcpay`, `bank`, `crypto`, `wallet`, or `cod`. The name on the card (Cardholder Name). The card number (min: 6 digits). The expiry date of the customer debit/credit card. Sample value: 29/05 Set this to true if the customer passed the CVV/CSV verification process. The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). ```json Success { "data": { "score": 82, "rules": [ { "id": "PF10003", "description": "Customer IP Address is probably VPN/Proxy/Bot/Hosting/Cloud." }, { "id": "PF10004", "description": "Customer Email Address is probably invalid or spam." }, { "id": "PF10001", "description": "High purchase rate, according to `customer_ip`." }, { "id": "PF10002", "description": "High purchase rate, according to `customer_id`." }, { "id": "PF10013", "description": "Customer device might not be a real device (according to `customer_useragent`)." }, { "id": "PF10014", "description": "Customer device is registered as a high-risk device (according to `customer_useragent`)." } ], "rulesChecked": 21, "rulesDetected": 6, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 5 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties A risk-score from 0 to 100 indicating how risky this transaction is (`10.5` means it's `10.5% risky` to pass this transaction). The Id of the detected rule. (`10.5` means it's `10.5% risky` to pass this transaction). Sample value: `PF10003` The full description of the detected rule. Sample value: `High purchase rate, according to "customer_id".` Total rules checked against the transaction. Total rules detected in the transaction. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. ## Possible Rules | Id | Description | | ------- | --------------------------------------------------------------------------------------------------------------------------------------- | | PF1001 | High purchase rate, according to `customer_ip`. | | PF1002 | High purchase rate, according to `customer_id`. | | PF1003 | Customer IP Address is probably VPN/Proxy/Bot/Hosting/Cloud. | | PF1004 | Customer Email Address is probably invalid, disposable or spam. | | PF1005 | Customer Phone Number is probably invalid or spam. | | PF1006 | Customer Latitude/Longitude is invalid. | | PF1007 | Customer card number (BIN/IIN) is invalid. | | PF1008 | Customer debit/credit card issued by a brand different from the one exist in `payment_type` parameter. | | PF1009 | Customer country is a high-fraud country. | | PF1010 | Customer debit/credit card issued in a high-risk country. | | PF1011 | Customer is purchasing multiple times from multiple locations within the past 30 days. | | PF1012 | Customer debit/credit card is being used multiple times from multiple customer accounts (according to `customer_id` and `card_number`). | | PF1013 | Customer device might not be a real device (according to `customer_useragent`). | | PF1014 | Customer device is registered as a high-risk device (according to `customer_useragent`). | | PF1015 | AI flagged the transaction as potentially fraudulent. | | PF1016 | AI flagged the transaction as potentially fraudulent due to high transaction amount. | | PF1017 | Mismatch between billing address and IP geolocation. | | PF1018 | Customer has multiple fraudulent transactions in the past 30 days. | | PF1019 | Unusual purchase amount compared to customer’s history. | | PF1020 | Transaction initiated from a newly created account. | | PF10021 | Multiple payment cards used by a single account within a short timeframe. | | PF10022 | Customer IP address were found in one of your blacklists. | | PF10023 | Customer email address were found in one of your blacklists. | | PF10024 | Customer phone number were found in one of your blacklists. | | PF10025 | Customer card number were found in one of your blacklists. | | PF10026 | Customer Id were found in one of your blacklists. | # Phone Number Scoring Source: https://docs.greip.io/api-reference/endpoint/scoring/phone GET /scoring/phone This method serves as an additional layer of protection in your system for validating phone numbers. It not only checks the syntax but also assesses the likelihood of the phone number being valid and operational. By incorporating this scoring into your workflow, you can enhance fraud detection, reduce invalid inputs, and improve the overall quality of data captured. ### Query Parameters The phone command is used to specify the phone number you want to validate. Expected values: a phone number Sample value: `+12121234567`, `0012121234567`, `12121234567`, or `2121234567` The `ISO 3166-1 alpha-2` format of the country code of the phone number. [Learn more](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Sample value: `US` The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, `CSV`, or `Newline` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The userID command can be used to identify requests sent by specific users to monitor in the [Events Page](/dashboard-guides/monitoring-capabilities/real-time-threat-monitoring). Expected values: email address, phone number, user id, name, etc. For more information please refer to [User Identifier](/options/user-identifier). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "carrier": "", "reason": "Invalid phone number structure.", "isValid": false, "custom_rules_applied": { "total": 0, "rules": [] } }, "status": "success", "executionTime": 1 } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties Carrier name of the phone number. The reason behind considering this phone number as risky. **Note:** The value of this property will be empty if the `isValid` is `true`. A boolean value that you can rely on to determine if the phone number is 100% safe & valid or not. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The total number of custom rules applied to this request. The custom rules applied to this request, [learn more](/knowledge-base/custom-rules/overview). The rule ID as shown in the dashboard (e.g: `CR104`). The rule title you set when creating the rule. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. ## What can I expect from this API? * Detection of disposable email addresses (also known as Temporary Email Addresses) * Testing the email service provider of a given email address * Validation of email syntax # Profanity Detection Source: https://docs.greip.io/api-reference/endpoint/scoring/profanity GET /scoring/profanity This method helps safeguard your website or app by detecting offensive or inappropriate language in user inputs. By screening for profanity and other harmful content before it’s made public, you can maintain a positive user environment, protect your brand, and prevent abusive behavior on your platform. This method uses Machine Learning (ML) to analyze text and determine whether it contains profanity. It returns a score for the text you pass, classifying it as safe or risky. ### Query Parameters The text you want to filter Sample value: `This is a sample text without profanity!` Returns only the score of the text and whether it's safe or not. Expected values: `yes`, or `no`. Used to list the bad words in an array. Expected values: `yes`, or `no`. The format command is used to get a response in a specific format. Expected values: `JSON`, `XML`, or `CSV` For more information please refer to [Response Format](/options/response-format). The mode command is used to in the development stage to simulate the integration process before releasing it to the production environment. Expected values: `live`, or `test`. For more information please refer to [Development Environment](/options/development-environment). The callback command can help you make the response as a JSONP format. Expected values: any name that can be used as a function name in Javascript, e.g: `myFunctionName`. For more information please refer to [JSONP Callback](/options/jsonp-callback). ```json Success { "data": { "isML": true, "text": "This is just a normal text", "totalBadWords": null, "riskScore": 0, "isSafe": true, "status": "success", "executionTime": 120 } } ``` ```json Error { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ### Response properties A boolean value that indicates whether the detection is done by Machine Learning or not. The text you passed to the API. The total number of profane words found in the text. **Note:** This field is only available when `isML` is `true`, otherwise you'll get `null`. The risk score of the text you passed. A boolean value that indicates whether the text is safe or not. The response status. Expected values: `success`, or `error`. Time spent in milliseconds to process the data. This method returns a score for the text you pass. We classify profanity into 4 different level. The first level contains the most risky words and phrases (risky). The second level contains the medium-risk words and phrases. Whereas, the third level contains the low-risk words. When you use the API, the response will the determine the score of the text you passed as follows: * `riskScore = 0` means that this text is completely safe. * `riskScode = 1` means that this is a high-risk text. * `riskScode = 2` means that this is a medium-risk text. * `riskScode = 3` means that this is a low-risk text. # Authentication Source: https://docs.greip.io/authentication Authentication to Greip API made easy! To access our API and take advantage of all the available methods, you will need to authenticate your requests using your unique API Key. This key is a secure authentication mechanism that ensures only authorized users can access the API. To obtain your API Key, simply navigate to your [account dashboard](https://dashboard.greip.io/home). Once you have your API Key, you can begin authenticating your requests. To authenticate your requests, append the key parameter to the request URL, along with your API Key. Here is an example of how to do this: Add your API Key to the key parameter just like this: ```bash https://greipapi.com/geoip?key=1234567890 ``` Or, you can use the API Key as a Bearer Token as follows: ```bash cURL curl --request GET \ --url https://greipapi.com/geoip \ --header 'Authorization: Bearer ' ``` ## Securing your API Key For more information about how to secure your API Key, please refer to [Protecting your API Key]() # Error Codes Source: https://docs.greip.io/error-codes List of any error you might get while using Greip API Although we strive to provide a seamless and reliable experience, sometimes things can go wrong. In the event of an error, our API provides an error response that contains helpful information to assist you in resolving the issue. The error response includes the `status`, `code`, `type`, and `description` of the error. The status indicates the general category of the error, while the `code` and `type` provide more specific information about the error. The `description` property provides a detailed explanation of the error and may include suggestions for resolving the issue. Here is an example of an error response: ```json { "status": "error", "code": 101, "type": "invalid_key", "description": "The API Key is missing or invalid." } ``` ## Error codes | Code | Type | Description | | ---- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | 101 | `invalid_key` | The API Key is missing or invalid. | | 102 | `inactive_user` | The API Key owner (the account) is inactive right now. Please contact the support team for more information. | | 103 | `limit_reached` | You reached the usage limit of your account. Please upgrade your subscription or pay any unpaid invoices. | | 104 | `invalid_params` | Please check out the parms parameter's value. | | 105 | `plan_expired` | Your plan has expired. Renew the subscription to enable using the API. | | 106 | `flood_detected` | Our system has detected too many requests at the same time. Kindly please try to slow down. | | 107 | `invalid_callback_name` | The value of the callback parameter cannot be a function name. | | 108 | `invalid_format` | The value of the format parameter is not a valid format. Use `JSON`, `XML` or `Newline`. | | 109 | `callback_not_allowed` | You can use the callback feature only with the JSON format. | | 110 | `invalid_language` | The value of the lang parameter is not a valid format. Use `EN`, `AR`, `FR`, `DE`, `ES`, `JA`, `ZH` or `RU`. | | 111 | `invalid_mode` | The value of the mode parameter is not a valid format. Use test or live. | | 112 | `invalid_ip` | The IP Address is not valid or empty. | | 113 | `domain_not_whitelisted` | You are sending the request from a domain that is not the domain name you set in the API settings of your account's dashboard. | | 114 | `security_module_not_allowed` | You cannot use the security module in the free plan. Please upgrade your API plan to unlock this feature. | | 115 | `generic_error` | An error occurred while processing your request. Please try again later. | | 116 | `invalid_country_code` | The Country Code is invalid or not found. | | 117 | `feature_not_available` | This feature is not available for your plan, please upgrade your plan first. | | 118 | `invalid_phone_number` | The Phone Number is invalid or missing. | | 119 | `invalid_email_address` | The Email Address is invalid or missing. | | 120 | `invalid_bin_number` | The BIN number is invalid or missing. | | 121 | `invalid_asn` | The AS Number you provided is empty or invalid. | | 122 | `invalid_iban` | The IBAN is invalid or missing. | | 123 | `invalid_userid` | The user identifier is invalid or too long. | | 124 | `invalid_user_type` | The user type is invalid or missing. Use `email`, `phone` or `user_id`. | | 125 | `invalid_user_value` | The user value is invalid or missing (`value` parameter). | | 126 | `too_many_deletions` | You have reached the limit of deletions for this day. Please wait until the next day to delete more user data. | # HTTPS Support Source: https://docs.greip.io/https-support Keep everything secure and protected Our API supports HTTPS requests. No matter which plan you choose (even the free one), the HTTPS protocol will always be available for you. # About Greip Source: https://docs.greip.io/integration-guide/about-greip Know more about Greip and the advanced fraud prevention solutoins we offer ## Overview Fraud became a major concern for businesses in the digital age. It is a growing problem that affects businesses of all sizes and industries. Fraudsters are constantly evolving their tactics to bypass traditional fraud prevention measures. This is where Greip comes in. Greip is an advanced fraud prevention solution that helps businesses detect and prevent fraud in real-time. ## What is Greip? Greip is a fraud prevention solution that uses advanced machine learning algorithms to detect and prevent fraud in real-time. It analyzes user behavior and transaction data to identify suspicious activity and stop fraud before it happens. Greip is designed to be easy to integrate into your existing systems and can be customized to meet the specific needs of your business. We offer a range of fraud prevention solutions to help businesses protect themselves from fraud. From account takeover prevention to payment fraud detection and IP reputation monitoring, Greip has you covered. Our solutions are designed to be flexible and scalable, so you can easily adapt them to your business needs as they grow and evolve. ## Custom Rules & Blacklists Greip allows you to create custom rules and blacklists to help you detect and prevent fraud. You can define rules based on a wide range of criteria, such as transaction amount, user location, device type, user IP address, etc. Greip also allows you to create blacklists of known fraudsters and suspicious IP addresses, user accounts, email addresses, and much more, so you can block them from accessing your systems. You can learn more by visiting [Custom Rules](/knowledge-base/custom-rules/overview) and [Blacklists](/knowledge-base/blacklists/overview) pages. ## Real-Time Events & Alerts We also provides real-time event monitoring and alerts to help you stay on top of fraud. You can monitor critical events in real-time, such as fake accounts, suspicious transactions, and suspecious IP addresses. You can learn more by visiting the [Events & Alerts](/knowledge-base/events-and-alerts/overview) page. # Timeline Source: https://docs.greip.io/integration-guide/timeline Get started with Greip and advanced fraud prevention solutions Know more about Greip and the advanced fraud prevention solutoins we offer. Here are some of ideas to get you started: Integrate Greip into your system and start protecting your business from fraud and abuse. Use case based integration guides: Greip offers a wide range of customization options that allow you to tailor the solution to your needs. Keep an eye on critical metrics and events to ensure that everything is running smoothly. # Account Takeover Source: https://docs.greip.io/integration-guide/use-cases/account-takeover Learn how Greip can help you detect and prevent account takeover fraud in real-time ## Overview Account takeover fraud is a type of fraud that involves a fraudster gaining unauthorized access to a user's account. Once the fraudster has access to the account, they can make unauthorized transactions, steal personal information, and cause other types of harm. Account takeover fraud is a serious problem that can have significant financial and reputational consequences for businesses. ## What is Account Takeover Fraud? Account takeover fraud occurs when a fraudster gains access to a user's account by stealing their login credentials. This can happen through a variety of methods, such as phishing attacks, malware, and social engineering. Once the fraudster has access to the account, they can use it to make unauthorized transactions, steal personal information, and cause other types of harm. Greip uses advanced machine learning algorithms to detect and prevent account takeover fraud in real-time. It analyzes user behavior and account activity to identify suspicious activity and stop fraud before it happens. Greip is designed to be easy to integrate into your existing systems and can be customized to meet the specific needs of your business. ## The Integration Logic Greip provides multiple approaches to empower you to detect and prevent account takeover fraud in real-time. Which approach you choose depends on your business needs and the level of fraud prevention you require. Here are some of the key features of Greip: * **Pre-purchase Fraud Detection**: Greip can analyze user behavior and account activity to identify suspicious activity before an account takeover occurs. This can help prevent fraudsters from gaining unauthorized access to user accounts in the first place. It can be done through the following endpoints: 1. [IP Geolocation](/api-reference/endpoint/data-lookup/geoip): This endpoint allows you to determine the geolocation of an IP address to identify suspicious activity by comparing the user's location with the IP address location or by checking if the IP address is different from the user's usual location. 2. [IP Reputation](/api-reference/endpoint/scoring/ip-reputation): This endpoint allows you to check the reputation of an IP address to determine whether it is associated with fraudulent activity. * **Post-purchase Fraud Detection**: Greip can also analyze transaction data after a purchase is made to identify suspicious activity. This can help you detect and prevent fraud in real-time. These can be done through our [BIN/IIN Lookup](/api-reference/endpoint/data-lookup/bin) endpoint. {" "} A common approuch is to use the BIN/IIN Lookup endpoint to check the card issuer country and compare it with the user's IP address country. If the two countries do not match, it could be a sign of fraud. # Chargeback Fraud Source: https://docs.greip.io/integration-guide/use-cases/chargeback-fraud Learn how Greip can help you detect and prevent chargeback fraud in real-time ## Overview Chargeback fraud is a type of fraud that occurs when a customer disputes a legitimate transaction and requests a chargeback from their bank or credit card company. Chargeback fraud can have serious financial consequences for businesses, as it can result in lost revenue, increased chargeback fees, and damage to the business's reputation. Chargeback fraud is a common problem for online merchants, as it can be difficult to detect and prevent. ## What is Chargeback Fraud? Chargeback fraud occurs when a customer disputes a legitimate transaction and requests a chargeback from their bank or credit card company. This can happen for a variety of reasons, such as the customer claiming that they did not receive the goods or services they paid for, that the goods or services were defective, or that the transaction was unauthorized. Chargeback fraud can be difficult to detect and prevent, as fraudsters often use stolen credit card information or other fraudulent means to make the transaction appear legitimate. Greip uses advanced machine learning algorithms to detect and prevent chargeback fraud in real-time. It analyzes transaction data and customer behavior to identify suspicious activity and stop fraud before it happens. Greip is designed to be easy to integrate into your existing systems and can be customized to meet the specific needs of your business. ## The Integration Logic Greip provides multiple approaches to empower you to detect and prevent chargeback fraud in real-time. Which approach you choose depends on your business needs and the level of fraud prevention you require. Here are some of the key features of Greip: * **Pre-purchase Fraud Detection**: Greip can analyze user behavior and transaction data to identify suspicious activity before a purchase is made. This can help prevent fraudulent transactions from occurring in the first place and it can be done through the following endpoints: 1. [Payment Fraud Detection](/api-reference/endpoint/scoring/payment): This endpoint allows you to score a transaction based on the likelihood of fraud. You can use this score to determine whether to accept or reject the transaction. When using this endpoint, try to provide as much information as possible about the transaction, so Greip can provide a comprehensive scoring result. 2. [IP Reputation](/api-reference/endpoint/scoring/ip-reputation): This endpoint allows you to check the reputation of an IP address to determine whether it is associated with fraudulent activity. 3. [IBAN Lookup](/api-reference/endpoint/data-lookup/iban): This endpoint allows you to validate an IBAN number to ensure that it is valid. 4. [Email Risk Scoring](/api-reference/endpoint/scoring/email): This endpoint allows you to score the user email address based on the likelihood of fraud. 5. [Phone Risk Scoring](/api-reference/endpoint/scoring/phone): This endpoint allows you to score the user phone number based on the likelihood of fraud. * **Post-purchase Fraud Detection**: Greip can also analyze transaction data after a purchase is made to identify suspicious activity. This can help you detect and prevent fraud in real-time. These can be done through our [BIN/IIN Lookup](/api-reference/endpoint/data-lookup/bin) endpoint. {" "} A common approuch is to use the BIN/IIN Lookup endpoint to check the card issuer country and compare it with the user's IP address country. If the two countries do not match, it could be a sign of fraud. # Content Moderation Source: https://docs.greip.io/integration-guide/use-cases/content-moderation Learn how Greip can help you automate content moderation and protect your platform from harmful content. ## Overview Content moderation is the process of monitoring and filtering user-generated content to ensure it complies with community guidelines and legal requirements. It is essential for protecting users from harmful content, maintaining a positive user experience, and complying with regulations. Greip provides advanced content moderation tools that use machine learning (ML) algorithms to automate the process and help you protect your platform from harmful content. ## The Integration Logic ### 1. Profanity Detection Endpoint: [`/scoring/profanity`](/api-reference/endpoint/scoring/profanity) **How it helps:** Detect offensive, inappropriate, or harmful language in user-generated content (e.g., comments, posts, messages). Identify and flag content containing profanity, hate speech, or other prohibited terms. Customize the response to either block the content, flag it for review, or notify moderators. **Key Parameters:** * `text`: The text to analyze. * `listBadWords`: Set to `yes` to return a list of detected bad words. * `scoreOnly`: Set to `yes` to return only the risk score (useful for quick filtering). **Example Use Case:** A user submits a comment: "This is a terrible product, and I hate it!" Use the [`/scoring/profanity`](/api-reference/endpoint/scoring/profanity) endpoint to analyze the text. If the text contains profanity or exceeds a risk threshold, flag it for review or automatically reject it. ### 2. IP Reputation and Threat Intelligence Endpoints: `/lookup/ip`, `/lookup/ip/threats` **How it helps:** Identify users with high-risk IP addresses (e.g., VPNs, proxies, Tor nodes, Bots, Hosting) who may be attempting to bypass content moderation filters. Detect IPs associated with malicious activity or spamming. **Example Use Case:** A user with a high-risk IP submits multiple posts in a short time frame. Use Greip to check the IP’s reputation and flag the user for further review. ### 3. Email and Phone Validation Endpoints: [`/scoring/email`](/api-reference/endpoint/scoring/email), [`/scoring/phone`](/api-reference/endpoint/scoring/phone) **How it helps:** Detect disposable or temporary email addresses often used by spammers or trolls. Validate phone numbers to ensure they are legitimate and not associated with fraudulent activity. **Example Use Case:** A user signs up with a disposable email address (e.g., `temp@mailinator.com`). Use the [`/scoring/email`](/api-reference/endpoint/scoring/email) endpoint to flag the account for manual review or block it automatically. ### 4. User Behavior Monitoring **How it helps:** Use the [User Identifier](/options/user-identifier) to track user activity and identify patterns of abusive behavior (e.g., repeated posting of inappropriate content). Combine Greip’s data with your application’s logic to detect and block repeat offenders. ### 5. Customizable Response Formats **How it helps:** Use the format parameter to receive responses in your preferred format (e.g., JSON, XML). Integrate Greip’s content moderation features seamlessly into your application. # Fake Accounts Source: https://docs.greip.io/integration-guide/use-cases/fake-accounts Learn how Greip can help you detect and prevent fake accounts in real-time ## Overview Fake accounts are a type of fraud that involves a fraudster creating an account using false or stolen information. Once the fake account is created, the fraudster can use it to make unauthorized transactions, steal personal information, and cause other types of harm. Fake accounts are a serious problem that can have significant financial and reputational consequences for businesses. ## What are Fake Accounts? Fake accounts occur when a fraudster creates an account using false or stolen information. This can happen through a variety of methods, such as using fake email addresses, phone numbers, and other personal information. Once the fake account is created, the fraudster can use it to make unauthorized transactions, steal personal information, and cause other types of harm. Greip uses advanced machine learning algorithms to detect and prevent fake accounts in real-time. It analyzes user behavior and account activity to identify suspicious activity and stop fraud before it happens. Greip is designed to be easy to integrate into your existing systems and can be customized to meet the specific needs of your business. ## The Integration Logic Greip provides multiple approaches to empower you to detect and prevent fake accounts in real-time. Which approach you choose depends on your business needs and the level of fraud prevention you require. Here are some of the key features of Greip: 1. [Email Verification](/api-reference/endpoint/data-lookup/email-verification): This endpoint allows you to verify the validity of an email address to ensure that it is not associated with fraudulent activity. 2. [Phone Verification](/api-reference/endpoint/data-lookup/phone-verification): This endpoint allows you to verify the validity of a phone number to ensure that it is not associated with fraudulent activity. 3. [IP Reputation](/api-reference/endpoint/scoring/ip-reputation): This endpoint allows you to check the reputation of an IP address to determine whether it is associated with fraudulent activity. # Multi-Accounting Source: https://docs.greip.io/integration-guide/use-cases/multi-accounting Learn how Greip can help you prevent multi-accounting in your application. ## Ovewview Multi-accounting is a common problem in applications where users can create multiple accounts to gain an unfair advantage. Greip can help you prevent multi-accounting by identifying users who have multiple accounts and taking appropriate action. ## The Integration Logic ### 1. IP Geolocation and Threat Intelligence Endpoint: [`/geoip`](/api-reference/endpoint/data-lookup/geoip), [`/lookup/ip`](/api-reference/endpoint/data-lookup/ip), [`/lookup/ip/threats`](/api-reference/endpoint/scoring/ip-reputation) **How it helps:** Detect if multiple accounts are being created from the same IP address or a suspicious IP range. Identify high-risk IPs (e.g., VPNs, proxies, Tor nodes) that are commonly used for multi-accounting. Use the security module to check if the IP is associated with malicious activity. ### 2. Device Fingerprinting Endpoint: [`/geoip`](/api-reference/endpoint/data-lookup/geoip) (with the device module) **How it helps:** Greip can provide device-related information (e.g., browser, OS, device type) that can be used to fingerprint devices. If multiple accounts are being created from the same device, it could indicate multi-accounting. ### 3. Email and Phone Validation Endpoints: [`/scoring/email`](/api-reference/endpoint/scoring/email), [`/scoring/phone`](/api-reference/endpoint/scoring/phone) **How it helps:** Detect disposable or temporary email addresses (common in multi-accounting). Validate phone numbers to ensure they are legitimate and not reused across multiple accounts. Flag suspicious email domains or phone numbers associated with fraud. ### 4. Payment Fraud Detection Endpoint: [`/scoring/payment`](/api-reference/endpoint/scoring/payment) **How it helps:** Analyze payment details (e.g., credit card, billing address) to detect patterns of multi-accounting. Identify if the same payment method is being used across multiple accounts. ### 5. ASN and BIN Lookup Endpoints: [`/lookup/asn`](/api-reference/endpoint/data-lookup/asn), [/lookup/bin](/api-reference/endpoint/data-lookup/bin) **How it helps:** Detect if multiple accounts are being created from the same Autonomous System (ASN), which could indicate coordinated multi-accounting. Validate credit card BINs to ensure they are not being reused fraudulently. ### 6. Profanity Detection Endpoint: [`/scoring/profanity`](/api-reference/endpoint/scoring/profanity) **How it helps:** Detect if users are creating accounts with offensive or suspicious usernames, which could indicate multi-accounting for abusive purposes. ### 7. User Behavior Monitoring **How it helps:** Use the userID parameter to track requests and monitor user behavior across your platform. Combine Greip data with your application’s logic to detect patterns of multi-accounting (e.g., multiple accounts created in a short time frame). ### Example Use Case: Multi-Accounting Detection When a user creates an account, collect their IP address, email, phone number, and device information. Use Greip’s [`/geoip`](/api-reference/endpoint/data-lookup/geoip) and [`/lookup/ip/threats`](/api-reference/endpoint/scoring/ip-reputation) endpoints to check if the IP is high-risk (e.g., VPN, proxy, or Tor). Validate the email using [`/scoring/email`](/api-reference/endpoint/scoring/email) to ensure it’s valid, correct, and not disposable. Validate the phone number using [`/scoring/phone`](/api-reference/endpoint/scoring/phone) to ensure it’s legitimate and not disposable. Check if the same IP, email, or phone number has been used for other accounts in your system. Use [`/scoring/payment`](/api-reference/endpoint/scoring/payment) to analyze payment details for signs of fraud. Flag or block accounts that exhibit suspicious patterns (e.g., multiple accounts from the same IP or device). # Payment Fraud Source: https://docs.greip.io/integration-guide/use-cases/payment-fraud Learn how Greip can help you detect and prevent payment fraud in real-time ## Overview Payment fraud is a growing problem that affects businesses of all sizes and industries. Fraudsters are constantly evolving their tactics to bypass traditional fraud prevention measures. This is where Greip comes in. Greip is an advanced fraud prevention solution that helps businesses detect and prevent payment fraud in real-time. ## What is Payment Fraud? Payment fraud is a type of fraud that involves the use of stolen payment information to make unauthorized transactions. It can take many forms, such as credit card fraud, account takeover fraud, and identity theft. Payment fraud can have serious consequences for businesses, including financial losses, damage to reputation, and legal liabilities. Greip uses advanced machine learning algorithms to detect and prevent payment fraud in real-time. It analyzes user behavior and transaction data to identify suspicious activity and stop fraud before it happens. Greip is designed to be easy to integrate into your existing systems and can be customized to meet the specific needs of your business. ## The Integration Logic Greip provide multiple approaches to empower you to detect and prevent payment fraud in real-time. Which approach you choose depends on your business needs and the level of fraud prevention you require. Here are some of the key features of Greip: * **Pre-purchase Fraud Detection**: Greip can analyze user behavior and transaction data to identify suspicious activity before a purchase is made. This can help prevent fraudulent transactions from occurring in the first place and it can be done through the following endpoints: 1. [Payment Fraud Detection](/api-reference/endpoint/scoring/payment): This endpoint allows you to score a transaction based on the likelihood of fraud. You can use this score to determine whether to accept or reject the transaction. When using this endpoint, try to provide as much information as possible about the transaction, so Greip can provide a comprehensive scoring result. 2. [IP Reputation](/api-reference/endpoint/scoring/ip-reputation): This endpoint allows you to check the reputation of an IP address to determine whether it is associated with fraudulent activity. 3. [IBAN Lookup](/api-reference/endpoint/data-lookup/iban): This endpoint allows you to validate an IBAN number to ensure that it is valid. 4. [Email Risk Scoring](/api-reference/endpoint/scoring/email): This endpoint allows you to score the user email address based on the likelihood of fraud. 5. [Phone Risk Scoring](/api-reference/endpoint/scoring/phone): This endpoint allows you to score the user phone number based on the likelihood of fraud. * **Post-purchase Fraud Detection**: Greip can also analyze transaction data after a purchase is made to identify suspicious activity. This can help you detect and prevent fraud in real-time. These can be done through our [BIN/IIN Lookup](/api-reference/endpoint/data-lookup/bin) endpoint. {" "} A common approuch is to use the BIN/IIN Lookup endpoint to check the card issuer country and compare it with the user's IP address country. If the two countries do not match, it could be a sign of fraud. # SMS Fraud Source: https://docs.greip.io/integration-guide/use-cases/sms-fraud Learn how Greip can help you detect and prevent SMS fraud. ## Overview SMS fraud is a type of fraud that involves sending unsolicited text messages to deceive users into providing sensitive information or making payments. SMS fraud can be used to steal personal information, commit identity theft, or spread malware. ## How Greip Can Help Greip can help you detect and prevent SMS fraud by analyzing the content of incoming messages and identifying suspicious patterns. Greip uses machine learning algorithms to analyze the text of messages and detect fraudulent activity. Greip can also block messages from known fraudsters and alert you to potential threats. ## The Integration Logic Greip provides multiple approaches to empower you to detect and prevent SMS fraud in real-time. Which approach you choose depends on your business needs and the level of fraud prevention you require. Here are some of the key features of Greip: 1. [Phone Risk Scoring](/api-reference/endpoint/scoring/phone-risk-scoring): This endpoint allows you to score the risk associated with a phone number to determine whether it is likely to be associated with fraudulent activity or invalid behavior. 2. [IP Reputation](/api-reference/endpoint/scoring/ip-reputation): This endpoint allows you to check the reputation of an IP address to determine whether it is associated with fraudulent activity. # Web Personalization Source: https://docs.greip.io/integration-guide/use-cases/web-personalization Learn how Greip can help you personalize your website content to improve user engagement and conversion rates ## Overview Web personalization is the process of customizing website content to meet the needs and preferences of individual users. By personalizing your website content, you can create a more engaging and relevant experience for your visitors, which can lead to increased user engagement, higher conversion rates, and improved customer satisfaction. ## How Greip Can Help Greip can help you personalize your website content by analyzing user behavior and preferences to deliver personalized recommendations and content. Greip uses advanced machine learning algorithms to analyze user data and identify patterns and trends that can be used to personalize website content. ## The Integration Logic Greip provides multiple approaches to empower you to personalize your website content and improve user engagement and conversion rates. Which approach you choose depends on your business needs and the level of personalization you require. Using our [IP Data](/api-reference/endpoint/data-lookup/geoip) endpoint, you can identify the location of your website visitors and deliver personalized content based on their geographic location. For example, you can display different content to users based on their country, city, or region. ## Common Use Cases * Automatically fill in sign-up forms using location information * Present location-specific promotions and ads * Show prices in the visitor's local currency * Display testimonials relevant to the visitor's location * Notify users when they are close to a physical store * Interpret traffic patterns in a significant manner # Introduction Source: https://docs.greip.io/introduction Welcome to Greip documentation Hero Light Hero Dark Greip's Fraud Prevention API is a powerful tool that can help you detect and prevent various types of fraud in your website or app. By using this API, you can gain more insight into your users and provide a better user experience and more importantly protecting your business from financial losses that rising each year due to fraudulent activities. In this documentation, we'll show you how to use the API by highlighting its methods, options, and other features. Our API also offers a "development environment," which allows you to test and integrate the API with your website or app without affecting your subscription. Please note that while the development environment simulates live mode exactly, it will retrieve random (fake) information. This feature can be helpful for developers who want to test the API's functionality before going live. ## Quick Start The Greip Fraud Prevention API can be used for both personal and commercial use cases, and you'll receive the same level of accuracy, speed, and security regardless of whether you have a paid plan or not. To get started, you'll need to [create account](https://dashboard.greip.io/register) and obtain a unique API key. Once you have your key, you can use it to access the API's functions and start detecting and preventing fraud in your website or app. ## Key Sections in This Documentation Learn how to use the Greip Fraud Prevention API to detect and prevent fraud Find the right package or library for your programming language Find helpful resources and guides on using Greip's dashboard Integrate Greip with other services and platforms {" "} A step by step guide to integrate Greip API with your website or app based on your use case # Account Deletion Source: https://docs.greip.io/knowledge-base/account-management/account-deletion Steps to delete your account In order to delete your account, please send an email to [support@greip.io](mailto:support@greip.io) with the subject "Greip Account Deletion Request". We will process your request within 24 hours. In case you need leave the account for later use, you can simply log out and stop using the account. We will not delete any account that is not requested to be deleted. # Downloading Invoices Source: https://docs.greip.io/knowledge-base/account-management/downloading-invoices Download your invoices from the dashboard In order to download your invoices, you need to follow these steps: Go to the [Subscription page](https://dashboard.greip.io/subscription) from the account dashboard. Under the 'Invoices' section, click on the 'Download' button as shown below: ![Greip Dashboard - Downloading the invoices](https://mintlify.s3.us-west-1.amazonaws.com/greip/images/download-invoices.png) # Enabling 2FA Source: https://docs.greip.io/knowledge-base/account-management/enabling-2fa Enable two-factor authentication for your account Two-factor authentication (2FA) adds an extra layer of security to your account. When you enable 2FA, you will be required to provide a verification code in addition to your password when logging in. To enable 2FA, follow these steps: Go to the [Account Settings page](https://dashboard.greip.io/settings) from the account dashboard. Under the 'Security settings' section, click on the 'Manage' button on the right side of the "2-Factor authentication" setting as shown below: ![Greip Dashboard - Enabling 2FA](https://mintlify.s3.us-west-1.amazonaws.com/greip/images/2fa-1.png) Scan the QR code with your authenticator app (e.g. Google Authenticator, Authy, etc.). Then enter the code generated by the app in it's field and click on the 'Verify & Enable' button. # Manage Authorized Devices Source: https://docs.greip.io/knowledge-base/account-management/manage-authorized-devices Manage the devices that are authorized to access your account