Introduction
Welcome to the FareUpThere Pulse API & SDK documentation. Here you will find all of the information necessary begin adding targeted touch-point surveys to your travel product.
Before you can start using our APIs, you'll need a partner API key. Complete the Pulse contact form to connect with an account manager to get onboarded. Once you’ve activated your key, you’re ready to roll.
Base URL
The FareUpThere API uses seperate URLs staging and production environment requests.
Staging
https://api.fareupthere.com/v1/pulse/
Production
https://api-staging.fareupthere.com/v1/pulse/
Response Format
All API responses are only returned in JSON.
Authentication
To authorize your request, pass your api key and targeted environment in the header:
curl "https://api-staging.fareupthere.com/v1/pulse/<endpoint>" \
-X <POST / GET / UPDATE / DELETE>
-H "apikey: <api key>"
-H "environment: <environment>
Make sure to replace
<api key>with your API key, and<environment>with eitherstagingorproduction.
Pulse uses API keys to allow access to the API. Complete the Pulse contact form to connect with an account manager to get onboarded.
Pulse expects for the API key to be included in all API requests to the server in a header that looks like the following:
apikey: <api key>
environment: <environment>
Surveys API
Add new survey
curl "http://api.fareupthere.com/v1/surveys" \
-X POST
-H "apikey: <api key>"
-H "environment: <environment>
-d
{
"unique": "false",
"title": "Did you enjoy the in-flight entertainment?",
"type": "research",
"options": [
"yes",
"no"
],
"target": {
"airline": "AA",
"gender": "female"
}
}
Response:
{
"id": "djjmk39f9j3nkd93",
"status": "success"
}
This endpoint adds a survey. A survey represents a single question that will be presented to user. Surveys include several attribute including answer and targeting options.
HTTP Request
POST http://api.fareupthere.com/v1/surveys
Survey Attributes
*Required
| Attribute | Description |
|---|---|
unique* Boolean |
Unique surveys can only be answered once by a user |
title* String |
Question for the user |
type* String |
Type of question: research, competition or demographic |
options* [String] |
Answer options, must have atleast 2 |
target Target |
Required attributes for user to see this survey question |
Target Attributes
| Attribute | Description |
|---|---|
airline Boolean |
Airline of the flight i.e. AA, WV |
gender String |
Gender of the user: male/female |
age_min Int |
Minimum age of user |
age_max Int |
Maximum age of user |
nationality String |
Nationality of user i.e. US, CA |
career String |
Career of user i.e. education, military |
device String |
OS of device i.e. android, ios |
education String |
Highest completed education of user i.e. high school, college degree |
ethnicity String |
Ethnicity of user i.e. black, asian |
height Int |
Height of user in inches i.e. 72 |
income_min Int |
Minimum annual income in USD i.e. 65000 |
income_max Int |
Maximum annual income in USD i.e. 225000 |
marital_status String |
Marital status of user i.e. married, divorced |
political String |
Politcal affiliation of user i.e. democract, green party |
flight_class String |
Flight class of flight i.e. first_class, economy |
home_airport String |
Airport code of user's home airport i.e. IAH, LAX |
departure String |
Airport code of user's departure airport i.e. IAH, LAX |
arrival String |
Airport code of user's arrival airport i.e. IAH, LAX |
Get all surveys
curl "http://api.fareupthere.com/v1/surveys" \
-X GET
-H "apikey: <api key>"
-H "environment: <environment>
The above command returns JSON structured like this:
{
"surveys": [
{
"approved": true,
"author": "dyhh48fu4bfh840",
"id": "nj284bfb48f94",
"created": "05022023",
"last_updated": "05022023",
"status": "active",
"unique": "false",
"title": "Did you enjoy the in-flight entertainment?",
"type": "research",
"options": [
"yes",
"no"
],
"responses": [
{
"response": "yes",
"date": "7/30/2022"
}
],
"target": {
"airline": "AA",
"gender": "female"
}
}
]
}
This endpoint returns a list of all of your surveys.
HTTP Request
GET http://api.fareupthere.com/v1/surveys
Response Attributes
| Attribute | Description |
|---|---|
approved Boolean |
All surveys must be approved by our validation framework |
status String |
Current status of a survey i.e. active, inactive |
unique Boolean |
Unique surveys can only be answered once by a user |
title String |
Question for the user |
type String |
Type of question: research, competition or demographic |
options [String] |
Answer options, must have atleast 2 |
target Target |
Required attributes for user to see this survey question |
responses Response |
Responses collected for this survey |
author String |
User ID of author of survey |
id String |
ID of survey |
created String |
Date the survey was created |
last_updated String |
Last time and date survey was updated |
Response Attributes
| Attribute | Description |
|---|---|
date String |
Date response was submitted |
response String |
Answer to survey question |
Get survey by ID
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.get(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.kittens.get(2)
curl "http://example.com/api/kittens/2" \
-H "Authorization: meowmeowmeow"
const kittn = require('kittn');
let api = kittn.authorize('meowmeowmeow');
let max = api.kittens.get(2);
The above command returns JSON structured like this:
{
"id": 2,
"name": "Max",
"breed": "unknown",
"fluffiness": 5,
"cuteness": 10
}
This endpoint retrieves a specific kitten.
HTTP Request
GET http://example.com/kittens/<ID>
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the kitten to retrieve |
Update survey
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.delete(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.kittens.delete(2)
curl "http://example.com/api/kittens/2" \
-X DELETE \
-H "Authorization: meowmeowmeow"
const kittn = require('kittn');
let api = kittn.authorize('meowmeowmeow');
let max = api.kittens.delete(2);
The above command returns JSON structured like this:
{
"id": 2,
"deleted" : ":("
}
This endpoint deletes a specific kitten.
HTTP Request
DELETE http://example.com/kittens/<ID>
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the kitten to delete |
Delete survey
require 'kittn'
api = Kittn::APIClient.authorize!('meowmeowmeow')
api.kittens.delete(2)
import kittn
api = kittn.authorize('meowmeowmeow')
api.kittens.delete(2)
curl "http://example.com/api/kittens/2" \
-X DELETE \
-H "Authorization: meowmeowmeow"
const kittn = require('kittn');
let api = kittn.authorize('meowmeowmeow');
let max = api.kittens.delete(2);
The above command returns JSON structured like this:
{
"id": 2,
"deleted" : ":("
}
This endpoint deletes a specific kitten.
HTTP Request
DELETE http://example.com/kittens/<ID>
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the kitten to delete |
Pulse Android SDK
Requirements
- Minimum Android version supported
23+ - Compile SDK version
30+
Pulse iOS SDK
Pulse iOS SDK info
Pulse Dashboard
Pulse dashboard info
Visa API
The Visa API provides all the relevant information required for travelers to travel internationally including but not limited vaccinations and entry requirements.
Currently the following coutries are supported: US, CA, MX, BR, UK, IE, NL, DE, FR, CH, IT, ES, AU, NZ, IN, VN, JP, SG
Coming soon: South Africa, Malaysia
Base URL
https://api.visaasaservice.com/v1/
Get required vaccinations
curl "https://api.visaasaservice.com/v1/vaccinations?country=QA" \
-X GET
-H "apikey: <api key>"
-H "environment: <environment>
The above command returns JSON structured like this:
{
"country": "India",
"Vaccinations": "Recommended all: Routine vaccines, Covid-19, Hepatitis A, Hepatitis B, Measles (for infants). Most: Typhoid. Malaria is a risk in some areas.",
"Country_ISO_Code": "IN",
"Last_Updated": "01_03_2022"
}
HTTP Request
GET https://api.visaasaservice.com/v1/vaccinations
Query Parameters
*Required
| Parameter | Description |
|---|---|
country* String |
2 letter country code i.e. US, QA |
Get travel advisory
curl "https://api.visaasaservice.com/v1/travel-advisory?country=IN" \
-X GET
-H "apikey: <api key>"
-H "environment: <environment>
The above command returns JSON structured like this:
{
"country": "Qatar",
"Travel_Advisory": "Air border open without restriction. Land borders remain closed. ",
"Covid_Health_Form": "",
"Country_ISO_Code": "QA"
}
HTTP Request
GET https://api.visaasaservice.com/v1/travel-advisory
Query Parameters
*Required
| Parameter | Description |
|---|---|
country* String |
2 letter country code i.e. US, QA |
Get visa details
curl "https://api.visaasaservice.com/v1/visa-exemption?nationality=US&destination=QA" \
-X GET
-H "apikey: <api key>"
-H "environment: <environment>
The above command returns JSON structured like this:
{
"passport_requirement_for_entry": "Your passport must be valid at least six months from the date of arrival.",
"Visa_Required": true,
"Visa_On_Arrival": false,
"Visa_Online": false,
"Travel_Authorization": "none",
"Exemptions": "none"
}
HTTP Request
GET https://api.visaasaservice.com/v1/visa-exemption
Query Parameters
*Required
| Parameter | Description |
|---|---|
nationality* String |
2 letter country code i.e. US, QA |
destination* String |
2 letter country code i.e. US, QA |
Get entry requirements
curl "https://api.visaasaservice.com/v1/requirements?location=US&destination=QA&type=tourist" \
-X GET
-H "apikey: <api key>"
-H "environment: <environment>
The above command returns JSON structured like this:
{
"ISO_Code": "QA_Tourist",
"Requirements": "Passport and a copy of passport biopage, a visa form, passport-style photo, ID card (resident card if not a US citizen), proof of employment, proof of address (bill or bank statement), letter of invitation or hotel reservation, cover-letter, and filing fees (www.qatarembassy.us/visa/).",
"Procedures": "You can apply by mail or in person with an appointment. Mail-in applications must be notarized prior to submission. You can request expedited service for an additional $50. Fees are paid by Money Order, payable to the consulate where you are submitting the application. You must also include a prepaid envelope for the return of your passport. Processing time is approximately 7-10 business days.",
"Contacts": "Embassy of Qatar in Washington, DC\nAddress: 2341 Wyoming Ave, NW\nWashington, DC 20008\nTél.: (+1) 202-483-6410\nFax: (+1) 202-483-6488\nEmail: info@embassyofqatar.org; Consular: consulate@embassyofqatar.org\nWeb: www.embassyofqatar.org\n\nConsulate General of Qatar in New York\nAddress: 241-02 Northern Blvd. 3rd Floor\nLittle Neck, NY 11362\nTél.: (+1) 212 972 2276\nFax: (+1) 718 279 9046\nEmail: visa.new york@mfa.af; info.newyork@mfa.af\nWeb: https://www.newyork.mfa.af/the-general-consulate/contact-us.html\n\nConsulate General of Qatar in Los Angeles\nAddress: 120 South Doheny Drive\nBeverly Hills, CA 90211\nTél.: (+1) 310-288-8334\nFax: (+1) 310-288-8355\nEmail: Question_la@qatarconsulategeneral.org\nWeb: www.qatarconsulategeneral.org",
"Filing_Tips": "Best Practices for Submitting a Visa Application:\n\n1. Passport: Have a valid biometric passport, usually with at least six months of validity remaining, and with free space for visas, usually at least two blank visa pages. If you are not a citizen of the country from which you are applying, you should also submit proof of your residency in the country. This proof may be a work visa, a residence permit, or a long-stay visa. Normally short-term visas like tourist and business visas are not permitted as proof.\n\n2. Application: Fill out the electronic/paper visa application form completely, and it must be signed by the applicant. However, if the applicant is a minor (younger than 18), the parents (or custodial parent) may sign the application on behalf of the minor child. If the child is traveling alone or with only one parent, a minor consent form is normally required by the consulate in order for a visa to be issued. Some consulates may require an affidavit in lieu of the form, so check the consulate links or contact the consulate if you need a visa for a minor. \n\n3. Photo: This is usually referred to as a passport-sized photo, even if the consulates provide varying dimensions for the photos. \n\n4. Letter of support/letter of invitation: This is a letter you or your sponsor write to the consulate requesting the visa you seek, providing details about yourself, your sponsor (if applicable), the purpose of your visit, your time frame, and arrangements you have made. Some countries require that this letter be notarized with a copy of the ID of the sponsor\n\n5. Proof of sufficient funds: This may include a letter of employment showing you are employed, a copy of your bank statement, an affidavit from your local sponsor guaranteeing your funds for your stay, proof of assets or any other sources of funding to show that you will be accounted for financially during your stay. \n\n6. Police Reports: The requirements for a police report usually means an FBI report in the US. FBI reports are obtained through one of the vendors accredited by the FBI to conduct the report: https://www.fbi.gov/services/cjis/compact-council/list-of-approved-channelers. For other countries, please confirm report requirements with the embassy or consulate before your submission. \n\n7. Other official documents: Birth certificates and marriage certificates are usually submitted if your spouse and children are seeking a visa based on your approved application, or if you are applying as a family. Copies of the certificates must normally be certified. Additionally, if the documents are not in one of the official languages of the country to which you are traveling, they must also contain a certified translation into the country’s language. A document in English or translated into English is usually acceptable, unless specifically indicated in the filing procedures. \n\n8. All required documents, other than identity documents or passports, such as letters of invitation, bank statements, police reports, medical examinations, and proof of medical insurance, must have an issue date not later than three months from the date of your visa application. \n\n9. For filing fees, and as good practice, please check the links provided for the embassy or consulate in your jurisdiction to review the detailed requirements and, if necessary, to contact the embassy or consulate. \n\n10. During the pandemic, many embassies and consulates have reduced their work hours or adopted contactless submission methods. Be sure to contact the embassy or consulate about their preferred submission procedures prior to submitting your visa application. \n",
"forms": [
"https://visaasaservice.com/file.pdf"
]
}
HTTP Request
GET https://api.visaasaservice.com/v1/requirements
Query Parameters
*Required
| Parameter | Description |
|---|---|
location* String |
2 letter country code i.e. US, QA |
destination* String |
2 letter country code i.e. US, QA |
type* String |
tourist / business |
Errors
The Kittn API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- The kitten requested is hidden for administrators only. |
| 404 | Not Found -- The specified kitten could not be found. |
| 405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 410 | Gone -- The kitten requested has been removed from our servers. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |