Skip to main content

Softpull GraphQL Request

Overview

The Softpull GraphQL Request helps track credit inquiries (softpulls) for analytics and reporting. A softpull is a credit check that does not affect your credit score. This system ensures your data is processed securely and efficiently.

How It Works

  • You submit event details via the Softpull request.
  • The backend processes the data for analytics without affecting your credit score.
  • Optional fields allow you to provide additional details for richer insights.

This system is designed to be user-friendly and transparent, ensuring your data is handled with care and precision.


Authentication

Most mutations and queries require authentication. The auth object must be provided as part of the request. It includes:

Auth Object

FieldTypeDescription
appIdStringThe application ID. Request this from [email protected].
appSecretStringThe application secret. Request this from [email protected].

Operations

Mutation: softpull

Tracks a softpull event for analytics.

Endpoint

mutation HeroPixel(
$auth: AuthRequestInput!
$event: SoftpullEventInput!
) {
softpull(auth: $auth, event: $event) {
message
code
data
}
}

Parameters

ParameterTypeRequiredDescription
authAuthRequestInputYesThe authentication credentials.
eventSoftpullEventInputYesDetails of the softpull event.

SoftpullEventInput Fields

FieldTypeRequiredDescription
addressStringNoThe user's street address.
cityStringNoThe user's city.
consumerIdStringNoAn optional identifier for the consumer.
emailStringYesThe user's email address.
eventStringNoThe event name or type.
firstNameStringYesThe user's first name.
ipStringYesThe IP address of the user.
lastNameStringYesThe user's last name.
md5StringNoThe MD5 hash of an identifier or email.
phoneStringYesThe user's phone number.
pixelIdFloatYesThe unique ID for the pixel.
prefiConsentDateStringNoThe date and time of consent.
stateStringNoThe user's state.
uniqueIdStringNoA unique identifier for the event.
zipStringNoThe user's zip or postal code.

Example Request

{
"query": "mutation HeroPixel($auth: AuthRequestInput!, $event: SoftpullEventInput!) { softpull(auth: $auth, event: $event) { message code data } }",
"variables": {
"auth": {
"appId": "yourAppIdHere",
"appSecret": "yourAppSecretHere"
},
"event": {
"pixelId": 1,
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"phone": "(202) 111-1111",
"prefiConsentDate": "2025-01-01T00:00:00Z",
"ip": "127.0.0.1"
}
}
}

Example CURL Request

curl -X POST https://sweet-colt-9750.ddn.hasura.app/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "mutation HeroPixel($auth: AuthRequestInput!, $event: SoftpullEventInput!) { softpull(auth: $auth, event: $event) { message code data } }",
"variables": {
"auth": {
"appId": "yourAppIdHere",
"appSecret": "yourAppSecretHere"
},
"event": {
"pixelId": 1,
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"phone": "(202) 111-1111",
"prefiConsentDate": "2025-01-01T00:00:00Z",
"ip": "127.0.0.1"
}
}
}'

Example Response

{
"data": {
"softpull": {
"code": 200,
"data": {
"consumer_data": {
"event": "softpull",
"team_id": 1,
"first_name": "John",
"last_name": "Doe",
"website_id": 1,
"pixel_id": 1,
"consumer_id": null,
"isUniqueLead": false,
"created_at": 1736248154,
"timestamp": "2025-01-07 11:09:14.270",
"prefi_consent_date": "2025-01-02T02:30:59Z",
"prefi_consent_ip": "127.0.0.1",
"email": "[email protected]",
"ip": "127.0.0.1",
"unique_id": "69654f75d5b647478f447aef62dc2c55",
"phone": "(202) 111-1111",
"md5": "69654f75d5b647478f447aef62dc2c55",
"address": null,
"city": null,
"zip": null,
"state": null,
"ledger": {
"credits_pixel_total": 0,
"credits_team_balance": 0,
"credits_team_today": 0,
"credits_pixel_today": 0
}
},
"funding_offers": {
"email": "[email protected]",
"phone": "(202) 111-1111",
"first_name": "John",
"last_name": "Doe",
"prefi_consent_date": "2025-01-02 02:30:59",
"prefi_consent_ip": "127.0.0.1",
"consumer_id": "",
"offername1": "Automatic Financing",
"offerscore1": "818",
"offerdetails1": "Financing Automatically and Instantly Available",
"offerstatus1": "Approved",
"offeramount1": "$82,000",
"offercontingencies1": "",
"offername2": "0% Unsecured Funding",
"offerscore2": "818",
"offerdetails2": "Unsecured Revolving Credit Lines - 0% for 12-21 months - To book: https://calendly.com/guidinglightamber",
"offerstatus2": "If Fixed",
"offeramount2": "$99,000",
"offercontingencies2": "PayD-$11,000",
"emails": ["[email protected]", "[email protected]"],
"phones": ["202-230-1111", "202-258-2222"],
"dob": "69",
"address1": "SOMEWHERE 200",
"city1": "WASHINGTON",
"state1": "DC",
"zip1": "00000",
"address2": "SOMEWHERE 500",
"city2": "WASHINGTON",
"state2": "DC",
"zip2": "11111",
"address3": "",
"city3": "",
"state3": "",
"zip3": "",
"address4": "1",
"city4": "",
"state4": "",
"zip4": "",
"created_at": "2025-01-03 04:07:17"
}
},
"message": "Success"
}
}
}

Response Object

The response object for all API calls adheres to the following structure:

export interface ApiResponseType {
code: number;
message: string;
data: sdk.JSONValue;
}
  • code: Indicates the result of the operation.
    • 200: Successful operation.
    • 400: Client error, such as invalid input.
    • 500: Server error.
  • message: A descriptive message about the operation's outcome.
  • data: Contains the result of the operation. For errors, this will be an empty object.

Error Handling

Common Errors

CodeMessageDescription
200Operation SuccessfulThe operation completed successfully.
400Invalid InputOne or more input fields are invalid.
500Internal Server ErrorAn unexpected error occurred on the server.

Example Error Response

{
"code": 400,
"message": "Invalid input provided.",
"data": {}
}
{
"code": 500,
"message": "Internal server error.",
"data": {}
}

For all error responses, the data field will be an empty object, and the message field will describe the issue encountered.


Contact

For additional support, contact our development team at [email protected].