FastGem allows access to a REST based API.
To gain access you must first generate a session token through the authenticate call.
Your API endpoing is your instance followd by /fast-api/v1
If your FastGem instance is "demo" https://DEMO.fastgem.net then your API endpoint will be https://demo.fastgem.net/fast-api/v1
Authenticate:
Endpoing: /fast-api/v1/authenticate
Body:
{
"username": "{{username}}",
"password": "{{password}}"
}
Response:
{"success":true,"message":null,"messages":null,"data":{"token":"XXXXXXXXXXXXXXXXX","email":"This email address is being protected from spambots. You need JavaScript enabled to view it."}}
All subsequent API calls will require the "token" from above in the header of the API as
Authorization: Bearer {{token}}
All objects within FastGem are accessible via the following commands:
Single Object:
GET /fast-api/v1/:object/get/:objectID
Reponse (example with submission object):
{
"success": true,
"message": null,
"messages": null,
"data": [
{
"id": "4703",
"business_name": null,
"first_name": "Chuck",
"last_name": "Norris",
"business_segment": null,
"business_type": null,
"account_type": null,
"email": null,
"primary_phone": "1231231233",
"secondary_phone": "0000000000",
"other_phone": null,
"account_number": null,
"so_num": null,
"order_id": null,
"activity_id": null,
"address": "12 W 1071 ST",
"address2": null,
"city": "WEST BOUNTIFUL",
"us_state": "UT",
"zipcode": "12312",
"county": null,
"billing_address": "123 W 1070 ST",
"billing_address2": null,
"billing_city": "WEST BOUNTIFUL",
"billing_us_state": "UT",
"billing_zipcode": "12312",
"ssn": null,
"dob": null,
"pin": null,
"security_answer": null,
"driver_number": null,
"driver_state": null,
"driver_exp": null,
"follow_up_details": null,
"status": "PASS",
"department": null,
"credit_risk": null,
"rep_id": "3",
"lead_rep_id": null,
"ref_id": null,
"processor_channel": null,
"area": "NOT SET",
"campaign": null,
"referrer_account_number": "123123",
"referrer_business": null,
"channel": null,
"created": "2008-06-18 23:12:00",
"lang": null,
"submission_data": null,
"custom_data": null,
"raw_data": "{}",
"file": null,
"file1": null,
"provider": null,
"misc": null,
"auth_subscription_id": null,
"auth_customer_profile_id": null,
"credit_card_name": null,
"credit_card_num": null,
"credit_card_exp": null,
"checking_account_num": null,
"credit_card_billing_zip": "84087",
"credit_card_type": null,
"checking_account_routing": null,
"time_since": "0:00:00:00"
}
]
}
Multiple Objects:
GET /fast-api/v1/:object?filter[_filter1]=ABC&filter[search]=SearchValue
Multiple search (and) with the same field (eg: status):
GET /fast-api/v1/submissions?filter[status][]=ABC&filter[status][]=XYZ
Paginate:
GET /fast-api/v1/:object?list[limitstart]=X
This will return the records starting with the Xth record. The API will return 250 records at a time, so to paginate you should increate the list[limitstart] by 250 after each call.
This will return the records starting with the Xth record. The API will return 250 records at a time, so to paginate you should increate the list[limitstart] by 250 after each call.
Response (array):
Note data object is an array when searching by object
{
"success": true,
"message": null,
"messages": null,
"data": [
{
"id": "827",
"business_name": "",
"first_name": "TEST",
"last_name": "TEST",
"business_classification": null,
"business_segment": null,
"business_type": null,
"account_type": null,
"email": "This email address is being protected from spambots. You need JavaScript enabled to view it.",
"primary_phone": "1231231234",
"secondary_phone": "",
"other_phone": null,
"account_number": "",
"so_num": null,
"order_id": "",
"activity_id": "",
"address": "123",
"address2": "",
"city": "ASDF",
"us_state": "",
"zipcode": "12312",
"zipcode_four": null,
"county": null,
"billing_address": "123",
"billing_address2": "",
"billing_city": "ASDF",
"billing_us_state": "",
"billing_zipcode": "12312",
"billing_zipcode_four": null,
"ssn": null,
"dob": null,
"pin": "",
"security_answer": "",
"driver_number": "",
"driver_state": "",
"driver_exp": "",
"follow_up_details": null,
"status": "NOT STARTED",
"department": null,
"credit_risk": "",
"rep_id": "131",
"lead_rep_id": "0",
"ref_id": "0",
"processor_channel": null,
"area": "new area test",
"campaign": null,
"referrer_account_number": null,
"referrer_business": null,
"created": "2022-07-27 10:48:24",
"lang": "",
"submission_data": "<p><b>Date</b>: 2022-07-27<br /><b>Sales Rep</b>: test rep under k 2<br /><br /><b>Customer First Name</b>: test<br /><b>Customer Last Name</b>: test<br /><b>Email</b>: This email address is being protected from spambots. You need JavaScript enabled to view it.;br /><b>Primary Phone</b>: 1231231234<br /><b>Address</b>: 123<br /><b>City</b>: asdf<br /><b>State</b>: asdf<br /><b>Zip</b>: 12312<br /><br /></p>",
"custom_data": "{\"custom_data0\":{\"name\":\"test\",\"value\":\"pme\"}}",
"raw_data": "{}",
"file": null,
"file1": "",
"provider": "",
"misc": null,
"auth_subscription_id": "",
"auth_customer_profile_id": "",
"credit_card_name": null,
"credit_card_num": null,
"credit_card_exp": null,
"checking_account_num": "",
"credit_card_billing_zip": "12312",
"credit_card_type": null,
"checking_account_routing": null,
"rep_phone": null,
"rep_name": "test rep under k 2"
}
]
}
Possible Objects:
Accounts (aka: properties)
Submissions (aka: people/leads/contacts)
Appointments (aka: work orders)
Packages
Actions (aka: action log)
RepAdjustments
Reps (aka: employees/techs/reps)
Create/Update Object:
POST /fast-api/v1/:object/set
Body:
Body reflects the same fields as when a GET is called against that object. If the ID is supplied, the object is updated, otherwise it is created.
Describe Object (potenial field values):
POST /fast-api/v1/:object/describe
Describe Single Object (potenial field values):
POST /fast-api/v1/:object/describe/:field