NAV
bash javascript php python

Info

Welcome to the generated API reference.

Admin-Category

All Categories

View all categories

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/categories" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/categories"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/categories',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/categories'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "categories": [
        {
            "id": 1,
            "name": "Assembly",
            "icon_image": "gear.png",
            "active": true
        },
        {
            "id": 2,
            "name": "Cleaning & Housekeeping",
            "icon_image": "mop.png",
            "active": true
        },
        {
            "id": 3,
            "name": "Custom Task",
            "icon_image": "edit-favr.png",
            "active": true
        },
        {
            "id": 4,
            "name": "Junk Removal",
            "icon_image": "recycling.png",
            "active": true
        },
        {
            "id": 5,
            "name": "Lawn & Yard",
            "icon_image": "lawnmower.png",
            "active": true
        },
        {
            "id": 6,
            "name": "Moving & Packing",
            "icon_image": "trolley.png",
            "active": true
        },
        {
            "id": 7,
            "name": "Seasonal",
            "icon_image": "leaf.png",
            "active": true
        }
    ]
}

HTTP Request

GET /admin/categories

Create Category

Create a category

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/category" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"name":"Window Cleaning","icon_image":"none"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/category"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "name": "Window Cleaning",
    "icon_image": "none"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/category',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'name' => 'Window Cleaning',
            'icon_image' => 'none',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/category'
payload = {
    "name": "Window Cleaning",
    "icon_image": "none"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /admin/category

Body Parameters

Parameter Type Status Description
name string required The name of the category.
icon_image string required The base64 encoded image of the new service area.

Update Category

Update a category

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/category/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"name":"Window Cleaning","icon_image":"none"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/category/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "name": "Window Cleaning",
    "icon_image": "none"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/category/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'name' => 'Window Cleaning',
            'icon_image' => 'none',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/category/1'
payload = {
    "name": "Window Cleaning",
    "icon_image": "none"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /admin/category/{id}

URL Parameters

Parameter Status Description
id required The ID of the category.

Body Parameters

Parameter Type Status Description
name string optional The name of the category.
icon_image string optional The base64 encoded image of the new service area.

Disable Category

Disable a category

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/admin/disable/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/disable/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/admin/disable/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/disable/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

PATCH /admin/disable/{id}

URL Parameters

Parameter Status Description
id required The ID of the category.

Enable Category

Enable a category

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/admin/enable/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/enable/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/admin/enable/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/enable/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

PATCH /admin/enable/{id}

URL Parameters

Parameter Status Description
id required The ID of the category.

Admin-City

All Cities

Show all service areas.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/cities" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/cities"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/cities',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/cities'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "cities": [
        {
            "id": 1,
            "city": "Rochester",
            "state": "MN",
            "zip": "55905",
            "lat": "44.012123",
            "long": "-92.480202",
            "description": "Rochester is home to the largest and most well renowned hospital in the world. It is also home to FAVR and you'll find no shortage of help on tasks here.",
            "image": "rochester.jpg"
        },
        {
            "id": 2,
            "city": "Minneapolis",
            "state": "MN",
            "zip": "55403",
            "lat": "44.977753",
            "long": "-93.265015",
            "description": "Beautiful Minneapolis is one of America's fastest growing cities. Let FAVR help you take part in that growth.",
            "image": "minneapolis.jpg"
        },
        {
            "id": 3,
            "city": "Winona",
            "state": "MN",
            "zip": "55987",
            "lat": "44.055389",
            "long": "-91.666351",
            "description": "Picturesque Winona on the bank of the Mississippi River is a premiere college town home to Winona State University and St. Mary's University. Let FAVR help you find help on tasks here.",
            "image": "winona.jpg"
        },
        {
            "id": 4,
            "city": "Brookings",
            "state": "SD",
            "zip": "57007",
            "lat": "44.311356",
            "long": "-96.798386",
            "description": "A regular city in middle America home to the popular South Dakota State University. Let FAVR help you find help on tasks here.",
            "image": "brookings.jpg"
        },
        {
            "id": 5,
            "city": "Mankato",
            "state": "MN",
            "zip": "56001",
            "lat": "44.163578",
            "long": "-93.999397",
            "description": "A bustling small town in Minnesota home to the great Mankato State University. Let FAVR help you find help tasks on tasks here.",
            "image": "mankato.jpg"
        },
        {
            "id": 6,
            "city": "Fargo",
            "state": "ND",
            "zip": "58102",
            "lat": "46.877186",
            "long": "-96.789803",
            "description": "Fargo is a cultural and industrial center for North Dakota. The city is also home to North Dakota State University. Let FAVR help you find help tasks on tasks here.",
            "image": "fargo.jpg"
        }
    ]
}

HTTP Request

GET /admin/cities

Create City

Add a new city

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/city" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"city":"Topeka","state":"KS","zip":"66647","description":"A nice city","image":"none"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/city"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "city": "Topeka",
    "state": "KS",
    "zip": "66647",
    "description": "A nice city",
    "image": "none"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/city',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'city' => 'Topeka',
            'state' => 'KS',
            'zip' => '66647',
            'description' => 'A nice city',
            'image' => 'none',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/city'
payload = {
    "city": "Topeka",
    "state": "KS",
    "zip": "66647",
    "description": "A nice city",
    "image": "none"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /admin/city

Body Parameters

Parameter Type Status Description
city string required The city name of the new service area.
state string required The state name of the new service area.
zip string required The zip code of the new service area.
description string required The description of the new service area.
image string required The base64 encoded image of the new service area.

Single City

View a specific city.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/city/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/city/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/city/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/city/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "city": {
        "id": 1,
        "city": "Rochester",
        "state": "MN",
        "zip": "55905",
        "lat": "44.012123",
        "long": "-92.480202",
        "description": "Rochester is home to the largest and most well renowned hospital in the world. It is also home to FAVR and you'll find no shortage of help on tasks here.",
        "image": "rochester.jpg"
    }
}

HTTP Request

GET /admin/city/{id}

URL Parameters

Parameter Status Description
id required The ID of the city.

Update City

Update a city

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/city/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"city":"Topeka","state":"KS","zip":"66647","description":"A nice city","image":"none"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/city/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "city": "Topeka",
    "state": "KS",
    "zip": "66647",
    "description": "A nice city",
    "image": "none"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/city/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'city' => 'Topeka',
            'state' => 'KS',
            'zip' => '66647',
            'description' => 'A nice city',
            'image' => 'none',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/city/1'
payload = {
    "city": "Topeka",
    "state": "KS",
    "zip": "66647",
    "description": "A nice city",
    "image": "none"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /admin/city/{id}

URL Parameters

Parameter Status Description
id required The ID of the city.

Body Parameters

Parameter Type Status Description
city string optional The city name of the new service area.
state string optional The state name of the new service area.
zip string optional The zip code of the new service area.
description string optional The description of the new service area.
image string optional The base64 encoded image of the new service area.

Admin-Credit

All Codes

Show all credit codes

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/credit" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/credit"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/credit',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/credit'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "codes": [
        {
            "id": 4,
            "code": "HMqsgP",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-17 04:20:58",
            "updated_at": "2020-02-17 04:20:58"
        },
        {
            "id": 8,
            "code": "6XUX0Z",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-17 04:56:51",
            "updated_at": "2020-02-17 04:56:51"
        },
        {
            "id": 12,
            "code": "64CRK1",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-18 02:37:36",
            "updated_at": "2020-02-18 02:37:36"
        },
        {
            "id": 16,
            "code": "ugf3vq",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-18 02:44:25",
            "updated_at": "2020-02-18 02:44:25"
        },
        {
            "id": 20,
            "code": "jMuiVq",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-18 14:51:02",
            "updated_at": "2020-02-18 14:51:02"
        },
        {
            "id": 24,
            "code": "Xuo9Vh",
            "amount": 50,
            "used": 1,
            "limit": 1,
            "created_at": "2020-02-18 16:36:12",
            "updated_at": "2020-02-18 16:36:12"
        },
        {
            "id": 25,
            "code": "Oa4XxQ",
            "amount": 50,
            "used": 0,
            "limit": 1,
            "created_at": "2020-02-20 06:42:15",
            "updated_at": "2020-02-20 06:42:15"
        }
    ]
}

HTTP Request

GET /admin/credit

Credit Code

Create a credit code

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/credit" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"code":"XHWNCR","amount":"20.00","limit":"3"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/credit"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "code": "XHWNCR",
    "amount": "20.00",
    "limit": "3"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/credit',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'code' => 'XHWNCR',
            'amount' => '20.00',
            'limit' => '3',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/credit'
payload = {
    "code": "XHWNCR",
    "amount": "20.00",
    "limit": "3"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /admin/credit

Body Parameters

Parameter Type Status Description
code string required The unique code to get the credit.
amount numeric required The amount of credit.
limit string required The number of times the code can be used.

Update Code

Update a credit code.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/credit/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"amount":"40.00","limit":"2"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/credit/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "amount": "40.00",
    "limit": "2"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/credit/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'amount' => '40.00',
            'limit' => '2',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/credit/1'
payload = {
    "amount": "40.00",
    "limit": "2"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /admin/credit/{id}

URL Parameters

Parameter Status Description
id required The ID of the credit code.

Body Parameters

Parameter Type Status Description
amount numeric optional The amount of credit.
limit string optional The number of times the code can be used.

Delete Code

Remove credit code

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/admin/credit/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/credit/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/admin/credit/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/credit/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /admin/credit/{id}

URL Parameters

Parameter Status Description
id required The ID of the credit code.

Admin-Home

User Stats

Get user statistics like total count and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/user-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/user-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/user-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/user-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 1,
    "growth": 0
}

HTTP Request

GET /admin/user-stats

Revenue Stats

Get revenue statistics and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/revenue-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/revenue-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/revenue-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/revenue-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /admin/revenue-stats

Expense Stats

Get statistics on expenses and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/expense-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/expense-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/expense-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/expense-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /admin/expense-stats

Traffic stats

Get traffic statistics and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/traffic-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/traffic-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/traffic-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/traffic-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /admin/traffic-stats

Role Breakdown

User breakdown by roles.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/role-breakdown" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/role-breakdown"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/role-breakdown',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/role-breakdown'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "workers": 133,
    "customers": 144,
    "pending": 144
}

HTTP Request

GET /admin/role-breakdown

City Breakdown

User breakdown by city.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/city-breakdown" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/city-breakdown"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/city-breakdown',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/city-breakdown'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": [
        {
            "name": "Rochester",
            "value": 40
        },
        {
            "name": "Minneapolis",
            "value": 33
        },
        {
            "name": "Winona",
            "value": 33
        },
        {
            "name": "Brookings",
            "value": 44
        },
        {
            "name": "Mankato",
            "value": 33
        },
        {
            "name": "Fargo",
            "value": 0
        }
    ]
}

HTTP Request

GET /admin/city-breakdown

Jobs Graph

Shows sales over time for graph.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/sales-graph" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/sales-graph"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/sales-graph',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/sales-graph'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "labels": [
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
        "Jan",
        "Feb"
    ],
    "datasets": [
        {
            "label": "Sales Value",
            "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ]
        }
    ]
}

HTTP Request

GET /admin/sales-graph

Sales Graph

Show job over time for graph.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/jobs-graph" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/jobs-graph"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/jobs-graph',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/jobs-graph'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "labels": [
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
        "Jan",
        "Feb"
    ],
    "datasets": [
        {
            "label": "Jobs",
            "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ]
        }
    ]
}

HTTP Request

GET /admin/jobs-graph

User Pie Chart

User breakdown into Pie Chart

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/pie-chart" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/pie-chart"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/pie-chart',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/pie-chart'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": [
        {
            "name": "Workers",
            "value": 54
        },
        {
            "name": "Pending Workers",
            "value": 59
        },
        {
            "name": "Customers",
            "value": 44
        }
    ]
}

HTTP Request

GET /admin/pie-chart

Admin-Marketplace

All Jobs

Return a list of all jobs.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/jobs" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/jobs"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/jobs',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/jobs'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "jobs": [
        {
            "id": 662,
            "customer_id": 3589,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 38,
            "description": "Numquam qui voluptatem eos quia voluptas ipsam numquam. Hic voluptatum praesentium iste hic eum.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:01:28",
            "updated_at": "2020-02-15 19:01:28",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:01:28",
            "customer": {
                "id": 3589,
                "username": "grayson1221",
                "role": "Customer",
                "first_name": "Charley",
                "last_name": "Hermann",
                "email": "devante86@example.net",
                "phone": "+18534218507",
                "twilio_phone": "+15075937178",
                "birthday": "1974-03-15",
                "city_id": 5,
                "is_admin": false,
                "organization_id": 418,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:01:28",
                "created_at": "2020-02-15 19:01:28",
                "updated_at": "2020-02-15 19:01:28",
                "deleted_at": null,
                "profile": null
            },
            "proposals": [],
            "category": {
                "id": 2,
                "name": "Cleaning & Housekeeping",
                "icon_image": "mop.png",
                "active": true
            },
            "locations": [
                {
                    "marketplace_id": 662,
                    "street_address": "111 1st NW",
                    "city": "Rochester",
                    "state": "MN",
                    "zip": "55901",
                    "lat": 44.0446131,
                    "long": -92.48416069999999
                }
            ]
        }
    ]
}

HTTP Request

GET /admin/jobs

URL Parameters

Parameter Status Description
id required The ID of the job.

Single Job

View a single job

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/job/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "job": {
        "id": 655,
        "customer_id": 3578,
        "freelancer_accepted": 0,
        "freelancer_count": 1,
        "category_id": 4,
        "price": 30,
        "description": "Iusto perferendis maiores et voluptatem. Distinctio est assumenda blanditiis quo rerum.",
        "status": "Requested",
        "intensity": "Medium",
        "complete_before": "2020-02-16 00:00:00",
        "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
        "image_two": null,
        "image_three": null,
        "created_at": "2020-02-15 18:45:27",
        "updated_at": "2020-02-15 18:45:27",
        "deleted_at": null,
        "isoFormat": "2020-02-16T00:00:00",
        "postedFormat": "2020-02-15T18:45:27",
        "customer": {
            "id": 3578,
            "username": "jessyca.torp75",
            "role": "Customer",
            "first_name": "Vito",
            "last_name": "Hansen",
            "email": "odibbert@example.org",
            "phone": "1-278-879-2578 x68339",
            "twilio_phone": "+15075937178",
            "birthday": "1980-01-18",
            "city_id": 4,
            "is_admin": false,
            "organization_id": 411,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 18:45:27",
            "created_at": "2020-02-15 18:45:27",
            "updated_at": "2020-02-15 18:45:27",
            "deleted_at": null,
            "profile": null
        },
        "locations": [],
        "proposals": [],
        "category": {
            "id": 4,
            "name": "Junk Removal",
            "icon_image": "recycling.png",
            "active": true
        }
    }
}

HTTP Request

GET /admin/job/{id}

URL Parameters

Parameter Status Description
id required The ID of the jobs.

Update Job

Update a customer job.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"category_id":"1","complete_before":"3\/11\/2020 12:00:00","intensity":"Medium","description":"I need help cleaning my basement."}'
const url = new URL(
    "https://lumen.askfavr.com/admin/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "category_id": "1",
    "complete_before": "3\/11\/2020 12:00:00",
    "intensity": "Medium",
    "description": "I need help cleaning my basement."
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'category_id' => '1',
            'complete_before' => '3/11/2020 12:00:00',
            'intensity' => 'Medium',
            'description' => 'I need help cleaning my basement.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/job/1'
payload = {
    "category_id": "1",
    "complete_before": "3\/11\/2020 12:00:00",
    "intensity": "Medium",
    "description": "I need help cleaning my basement."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /admin/job/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Body Parameters

Parameter Type Status Description
category_id Update optional the category.
complete_before Update optional the deadline.
intensity Update optional the intensity.
description Update optional the description.

Update Location

Update a job location

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/location/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/location/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/location/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/location/1'
payload = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

HTTP Request

POST /admin/location/{id}

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
street_address string optional Address of the organization.
city string optional City of the organization.
state string optional State of the organization.
zip string optional Zip code of the organization.

Delete job

Delete a job belonging to a customer.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/admin/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/admin/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/job/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /admin/job/{id}

URL Parameters

Parameter Status Description
id required The ID of the jobs.

Admin-Payment

All payments

View all payments on FAVR

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/payments" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/payments"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/payments',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/payments'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payments": [
        {
            "id": 1,
            "marketplace_id": 663,
            "customer_id": 3592,
            "amount": 28.01,
            "stripe_token": null,
            "refunded": false,
            "created_at": "2020-02-15 19:18:46",
            "updated_at": "2020-02-15 19:18:46",
            "customer": {
                "id": 3592,
                "username": "qmills88",
                "role": "Customer",
                "first_name": "Hassie",
                "last_name": "Nader",
                "email": "braeden.franecki@example.com",
                "phone": "(447) 724-7821",
                "twilio_phone": "+15075937178",
                "birthday": "1996-12-16",
                "city_id": 5,
                "is_admin": false,
                "organization_id": 421,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:18:46",
                "created_at": "2020-02-15 19:18:46",
                "updated_at": "2020-02-15 19:18:46",
                "deleted_at": null,
                "profile": null
            }
        }
    ]
}

HTTP Request

GET /admin/payments

Single Payment

View a single payment.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/payment/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/payment/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/payment/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/payment/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payment": {
        "id": 2,
        "marketplace_id": 664,
        "customer_id": 3593,
        "amount": 54.32,
        "stripe_token": null,
        "refunded": false,
        "created_at": "2020-02-15 19:18:57",
        "updated_at": "2020-02-15 19:18:57",
        "customer": {
            "id": 3593,
            "username": "fmcclure86",
            "role": "Verified Freelancer",
            "first_name": "Ottilie",
            "last_name": "Hettinger",
            "email": "makayla.beahan@example.com",
            "phone": "(814) 370-8344",
            "twilio_phone": "+15075937178",
            "birthday": "1973-12-20",
            "city_id": 4,
            "is_admin": false,
            "organization_id": 422,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 19:18:57",
            "created_at": "2020-02-15 19:18:57",
            "updated_at": "2020-02-15 19:18:57",
            "deleted_at": null,
            "profile": null,
            "stripe": null
        },
        "marketplace": {
            "id": 664,
            "customer_id": 3593,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 25,
            "description": "Dolorem aut alias voluptatem. Minus facere doloribus qui.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/www.simplemost.com\/wp-content\/uploads\/2017\/01\/8320434990_4c84ea6e62_o-750x500.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:18:57",
            "updated_at": "2020-02-15 19:18:57",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:18:57"
        }
    }
}

HTTP Request

GET /admin/payment/{id}

URL Parameters

Parameter Status Description
id required The ID of the payment.

Refund Payment

Refund a payment to a customer.

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/admin/refund/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/refund/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/admin/refund/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/refund/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()

HTTP Request

PATCH /admin/refund/{id}

URL Parameters

Parameter Status Description
id required The ID of the payment.

Admin-Transfer

All Transfers

View all transfers made by FAVR

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/transfers" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/transfers"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/transfers',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/transfers'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "transfers": [
        {
            "id": 5,
            "marketplace_id": 669,
            "freelancer_id": 3598,
            "amount": 45.5,
            "stripe_token": null,
            "reversed": false,
            "created_at": "2020-02-15 19:34:49",
            "updated_at": "2020-02-15 19:34:49",
            "freelancer": {
                "id": 3598,
                "username": "fwehner59",
                "role": "Verified Freelancer",
                "first_name": "Jamel",
                "last_name": "Sawayn",
                "email": "schiller.gwen@example.org",
                "phone": "214.212.1839 x057",
                "twilio_phone": "+15075937178",
                "birthday": "1983-03-04",
                "city_id": 4,
                "is_admin": false,
                "organization_id": 427,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:34:49",
                "created_at": "2020-02-15 19:34:49",
                "updated_at": "2020-02-15 19:34:49",
                "deleted_at": null,
                "profile": null
            }
        }
    ]
}

HTTP Request

GET /admin/transfers

Single Transfer

View specific transfer.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/transfer/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/transfer/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/transfer/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/transfer/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "transfer": {
        "id": 3,
        "marketplace_id": 667,
        "freelancer_id": 3596,
        "amount": 82.56,
        "stripe_token": null,
        "reversed": false,
        "created_at": "2020-02-15 19:32:45",
        "updated_at": "2020-02-15 19:32:45",
        "freelancer": {
            "id": 3596,
            "username": "wehner.gino97",
            "role": "Pending Freelancer",
            "first_name": "Marianne",
            "last_name": "Feest",
            "email": "daron.gutkowski@example.org",
            "phone": "+1-265-290-7745",
            "twilio_phone": "+15075937178",
            "birthday": "2007-09-29",
            "city_id": 1,
            "is_admin": false,
            "organization_id": 425,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 19:32:45",
            "created_at": "2020-02-15 19:32:45",
            "updated_at": "2020-02-15 19:32:45",
            "deleted_at": null,
            "profile": null,
            "stripe": null
        },
        "marketplace": {
            "id": 667,
            "customer_id": 3347,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 44,
            "description": "Maxime nulla autem atque distinctio. Et rerum voluptatem omnis qui mollitia.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:32:45",
            "updated_at": "2020-02-15 19:32:45",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:32:45"
        }
    }
}

HTTP Request

GET /admin/transfer/{id}

URL Parameters

Parameter Status Description
id required The ID of the payment.

Reverse Transfer

Reverse a worker transfer

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/admin/reverse/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/reverse/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/admin/reverse/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/reverse/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

PATCH /admin/reverse/{id}

URL Parameters

Parameter Status Description
id required The ID of the payment.

Admin-User

All Users

View all users.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/users" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/users"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/users',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/users'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "users": [
        {
            "id": 1,
            "username": "admin",
            "role": "Verified Freelancer",
            "first_name": "Super",
            "last_name": "Admin",
            "email": "oprice@example.org",
            "phone": "+1 (369) 891-9907",
            "twilio_phone": "+15075937178",
            "birthday": "2000-06-26",
            "city_id": 2,
            "is_admin": true,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 1,
                "image": "https:\/\/randomuser.me\/api\/portraits\/men\/55.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 2,
            "username": "worker",
            "role": "Verified Freelancer",
            "first_name": "Test",
            "last_name": "Worker",
            "email": "vhomenick@example.org",
            "phone": "1-269-439-8923 x7988",
            "twilio_phone": "+15075937178",
            "birthday": "1992-03-27",
            "city_id": 5,
            "is_admin": false,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 2,
                "image": "https:\/\/randomuser.me\/api\/portraits\/women\/58.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 3,
            "username": "customer",
            "role": "Customer",
            "first_name": "Test",
            "last_name": "Worker",
            "email": "hdicki@example.net",
            "phone": "367.909.2591",
            "twilio_phone": "+15075937178",
            "birthday": "1978-11-21",
            "city_id": 4,
            "is_admin": false,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 3,
                "image": "https:\/\/randomuser.me\/api\/portraits\/men\/59.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 4,
            "username": "org_admin",
            "role": "Verified Freelancer",
            "first_name": "Organization",
            "last_name": "Admin",
            "email": "wunsch.linnie@example.com",
            "phone": "(690) 355-1355 x260",
            "twilio_phone": "+15075937178",
            "birthday": "2004-08-31",
            "city_id": 1,
            "is_admin": false,
            "organization_id": 1,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 4,
                "image": "https:\/\/randomuser.me\/api\/portraits\/women\/55.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 5,
            "username": "org_worker",
            "role": "Verified Freelancer",
            "first_name": "Organization",
            "last_name": "Worker",
            "email": "gstiedemann@example.net",
            "phone": "738-914-1285 x5113",
            "twilio_phone": "+15075937178",
            "birthday": "1998-03-16",
            "city_id": 2,
            "is_admin": false,
            "organization_id": 1,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 5,
                "image": "https:\/\/randomuser.me\/api\/portraits\/women\/57.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 6,
            "username": "org_customer",
            "role": "Customer",
            "first_name": "Organization",
            "last_name": "Customer",
            "email": "sanford.strosin@example.com",
            "phone": "201.458.7892",
            "twilio_phone": "+15075937178",
            "birthday": "1986-08-24",
            "city_id": 3,
            "is_admin": false,
            "organization_id": 1,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:55:46",
            "created_at": "2020-02-17 03:55:46",
            "updated_at": "2020-02-17 03:55:46",
            "deleted_at": null,
            "profile": {
                "user_id": 6,
                "image": "https:\/\/randomuser.me\/api\/portraits\/men\/60.jpg",
                "description": null,
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46"
            }
        },
        {
            "id": 8,
            "username": "treichert6",
            "role": "Customer",
            "first_name": "Juana",
            "last_name": "Reichert",
            "email": "vward@example.org",
            "phone": "952-359-2569 x409",
            "twilio_phone": "+15075937178",
            "birthday": "2017-11-29",
            "city_id": 4,
            "is_admin": true,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-17 03:56:37",
            "created_at": "2020-02-17 03:56:37",
            "updated_at": "2020-02-17 03:56:37",
            "deleted_at": null,
            "profile": null
        }
    ]
}

HTTP Request

GET /admin/users

Single User

View a single user.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/user/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "user": {
        "id": 9,
        "username": "trenton.runte59",
        "role": "Customer",
        "first_name": "Glenna",
        "last_name": "Ledner",
        "email": "mcollins@example.org",
        "phone": "402.637.3815 x55853",
        "twilio_phone": "+15075937178",
        "birthday": "1991-01-12",
        "city_id": 5,
        "is_admin": true,
        "organization_id": null,
        "is_organization_admin": false,
        "credit_amount": 0,
        "intercom_id": null,
        "has_chatkit": false,
        "email_verified_at": "2020-02-17 03:56:38",
        "created_at": "2020-02-17 03:56:38",
        "updated_at": "2020-02-17 03:56:38",
        "deleted_at": null,
        "profile": null,
        "transfers": [],
        "payments": [],
        "stripe": null,
        "main_marketplace": [],
        "friend_marketplace": [],
        "friend_proposals": [],
        "main_proposals": [],
        "city": {
            "id": 5,
            "city": "Mankato",
            "state": "MN",
            "zip": "56001",
            "lat": "44.163578",
            "long": "-93.999397",
            "description": "A bustling small town in Minnesota home to the great Mankato State University. Let FAVR help you find help tasks on tasks here.",
            "image": "mankato.jpg"
        }
    }
}

HTTP Request

GET /admin/user/{id}

URL Parameters

Parameter Status Description
id required The ID of the user.

Update User

Update a user information.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"role":"Customer","email":"test@email.com","city":1,"credit":"20","description":"I am a good worker!"}'
const url = new URL(
    "https://lumen.askfavr.com/admin/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "role": "Customer",
    "email": "test@email.com",
    "city": 1,
    "credit": "20",
    "description": "I am a good worker!"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'role' => 'Customer',
            'email' => 'test@email.com',
            'city' => 1,
            'credit' => '20',
            'description' => 'I am a good worker!',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/user/1'
payload = {
    "role": "Customer",
    "email": "test@email.com",
    "city": 1,
    "credit": "20",
    "description": "I am a good worker!"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /admin/user/{id}

URL Parameters

Parameter Status Description
id required The ID of the user.

Body Parameters

Parameter Type Status Description
role string optional Role of the user.
email string optional Email of the user.
city integer optional The city ID for the user.
credit numeric optional Update user credit for jobs.
description string optional Description of user profile.

Search User

Search for a user.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/search?search=John+Doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/search"
);

let params = {
    "search": "John Doe",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'search' => 'John Doe',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/search'
params = {
  'search': 'John Doe'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "users": {
        "current_page": 1,
        "data": [
            {
                "id": 2,
                "username": "worker",
                "role": "Verified Freelancer",
                "first_name": "Test",
                "last_name": "Worker",
                "email": "vhomenick@example.org",
                "phone": "1-269-439-8923 x7988",
                "twilio_phone": "+15075937178",
                "birthday": "1992-03-27",
                "city_id": 5,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:55:46",
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46",
                "deleted_at": null,
                "profile": {
                    "user_id": 2,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/women\/58.jpg",
                    "description": null,
                    "created_at": "2020-02-17 03:55:46",
                    "updated_at": "2020-02-17 03:55:46"
                }
            },
            {
                "id": 3,
                "username": "customer",
                "role": "Customer",
                "first_name": "Test",
                "last_name": "Worker",
                "email": "hdicki@example.net",
                "phone": "367.909.2591",
                "twilio_phone": "+15075937178",
                "birthday": "1978-11-21",
                "city_id": 4,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:55:46",
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46",
                "deleted_at": null,
                "profile": {
                    "user_id": 3,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/men\/59.jpg",
                    "description": null,
                    "created_at": "2020-02-17 03:55:46",
                    "updated_at": "2020-02-17 03:55:46"
                }
            },
            {
                "id": 4,
                "username": "org_admin",
                "role": "Verified Freelancer",
                "first_name": "Organization",
                "last_name": "Admin",
                "email": "wunsch.linnie@example.com",
                "phone": "(690) 355-1355 x260",
                "twilio_phone": "+15075937178",
                "birthday": "2004-08-31",
                "city_id": 1,
                "is_admin": false,
                "organization_id": 1,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:55:46",
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46",
                "deleted_at": null,
                "profile": {
                    "user_id": 4,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/women\/55.jpg",
                    "description": null,
                    "created_at": "2020-02-17 03:55:46",
                    "updated_at": "2020-02-17 03:55:46"
                }
            },
            {
                "id": 5,
                "username": "org_worker",
                "role": "Verified Freelancer",
                "first_name": "Organization",
                "last_name": "Worker",
                "email": "gstiedemann@example.net",
                "phone": "738-914-1285 x5113",
                "twilio_phone": "+15075937178",
                "birthday": "1998-03-16",
                "city_id": 2,
                "is_admin": false,
                "organization_id": 1,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:55:46",
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46",
                "deleted_at": null,
                "profile": {
                    "user_id": 5,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/women\/57.jpg",
                    "description": null,
                    "created_at": "2020-02-17 03:55:46",
                    "updated_at": "2020-02-17 03:55:46"
                }
            },
            {
                "id": 6,
                "username": "org_customer",
                "role": "Customer",
                "first_name": "Organization",
                "last_name": "Customer",
                "email": "sanford.strosin@example.com",
                "phone": "201.458.7892",
                "twilio_phone": "+15075937178",
                "birthday": "1986-08-24",
                "city_id": 3,
                "is_admin": false,
                "organization_id": 1,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:55:46",
                "created_at": "2020-02-17 03:55:46",
                "updated_at": "2020-02-17 03:55:46",
                "deleted_at": null,
                "profile": {
                    "user_id": 6,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/men\/60.jpg",
                    "description": null,
                    "created_at": "2020-02-17 03:55:46",
                    "updated_at": "2020-02-17 03:55:46"
                }
            },
            {
                "id": 10,
                "username": "lbechtelar3",
                "role": "Verified Freelancer",
                "first_name": "Miracle",
                "last_name": "Okuneva",
                "email": "davon.bode@example.net",
                "phone": "1-351-417-5048 x319",
                "twilio_phone": "+15075937178",
                "birthday": "1981-02-21",
                "city_id": 1,
                "is_admin": true,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-17 03:56:38",
                "created_at": "2020-02-17 03:56:38",
                "updated_at": "2020-02-17 03:56:38",
                "deleted_at": null,
                "profile": null
            }
        ],
        "first_page_url": "http:\/\/api.askfavr.test\/admin\/search?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "http:\/\/api.askfavr.test\/admin\/search?page=1",
        "next_page_url": null,
        "path": "http:\/\/api.askfavr.test\/admin\/search",
        "per_page": 15,
        "prev_page_url": null,
        "to": 6,
        "total": 6
    }
}

HTTP Request

GET /admin/search

Query Parameters

Parameter Status Description
search optional string required The search query.

Password Reset

Send password reset email to a user.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/password/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/password/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/password/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/password/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

POST /admin/password/{id}

URL Parameters

Parameter Status Description
id required The ID of the user.

Suspend a user.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/admin/suspend/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/suspend/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/admin/suspend/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/suspend/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /admin/suspend/{id}

URL Parameters

Parameter Status Description
id required The ID of the user.

Auth-Email-Verification

Verify Email

Verify users email then close window

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/verify/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/verify/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/verify/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/verify/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (302):

{}

Example response (500):

null

HTTP Request

GET /verify/{id}

URL Parameters

Parameter Status Description
token required The user id encrypted in the token.

Auth-Forgot-Password

Password Reset

Send reset password email.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/forgot-password" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/forgot-password"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/forgot-password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/forgot-password'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

Example response (201):

{
    "message": "Reset password email has been sent."
}

HTTP Request

POST /forgot-password

Auth-Login

Login

User login to their account.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/login" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"username":"test_user","password":"secret"}'
const url = new URL(
    "https://lumen.askfavr.com/login"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "username": "test_user",
    "password": "secret"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'username' => 'test_user',
            'password' => 'secret',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/login'
payload = {
    "username": "test_user",
    "password": "secret"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "id": 709,
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.IjQwOTM1ZDVhLTU1NTgtNDdjZC05NDZkLTM1Y2NmNzJjYzEwZSI.BakpUiS_vhVq7dYY3CVp-cltkxHd0zLHaKP5kuwervs",
    "profile": {
        "user_id": 709,
        "image": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/user.png",
        "description": "I am a user.",
        "created_at": "2020-02-24 02:17:06",
        "updated_at": "2020-02-24 02:17:06",
        "user": {
            "id": 709,
            "username": "providenci6659",
            "role": "Verified Freelancer",
            "first_name": "Gianni",
            "last_name": "Okuneva",
            "email": "lucius.spencer@example.com",
            "phone": "1-636-865-7958",
            "twilio_phone": "+15075937178",
            "birthday": "1977-05-18",
            "city_id": 4,
            "is_admin": false,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-24 02:17:05",
            "created_at": "2020-02-24 02:17:05",
            "updated_at": "2020-02-24 02:17:05",
            "deleted_at": null,
            "organization": null
        }
    }
}

HTTP Request

POST /login

Body Parameters

Parameter Type Status Description
username string required The username or email of the user.
password string required The password for the user.

Token Validation

Validate a user has a valid token

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/validate" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/validate"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/validate',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/validate'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": true
}

HTTP Request

GET /validate

Logout

Log a user out.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/logout" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/logout"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/logout',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/logout'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

GET /logout

Auth-Register

User Registration

Register a new user.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/register" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"first_name":"John","last_name":"Doe","username":"test_user","email":"test_user@email.com","phone":"(901) 555-0125","birthday":"01\/01\/2000","city_id":1,"organization_id":"49268990-a172-349b-9bdc-785197d80faf","password":"secret"}'
const url = new URL(
    "https://lumen.askfavr.com/register"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "username": "test_user",
    "email": "test_user@email.com",
    "phone": "(901) 555-0125",
    "birthday": "01\/01\/2000",
    "city_id": 1,
    "organization_id": "49268990-a172-349b-9bdc-785197d80faf",
    "password": "secret"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/register',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'username' => 'test_user',
            'email' => 'test_user@email.com',
            'phone' => '(901) 555-0125',
            'birthday' => '01/01/2000',
            'city_id' => 1,
            'organization_id' => '49268990-a172-349b-9bdc-785197d80faf',
            'password' => 'secret',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/register'
payload = {
    "first_name": "John",
    "last_name": "Doe",
    "username": "test_user",
    "email": "test_user@email.com",
    "phone": "(901) 555-0125",
    "birthday": "01\/01\/2000",
    "city_id": 1,
    "organization_id": "49268990-a172-349b-9bdc-785197d80faf",
    "password": "secret"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

null

HTTP Request

POST /register

Body Parameters

Parameter Type Status Description
first_name string required The first name of the user.
last_name string required The last name of the user.
username string required The username of the user.
email string required The email of the user.
phone string required The phone number of the user.
birthday string optional optional The user birthday.
city_id integer required The city ID.
organization_id string required The uuid of the organization.
password string required The password for the user.

/organization-register

Example request:

curl -X POST \
    "https://lumen.askfavr.com/organization-register" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization-register"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/organization-register',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization-register'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

HTTP Request

POST /organization-register

Collect Email

Save email for user credit.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/email" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"email":"test_user@email.com","city_id":1}'
const url = new URL(
    "https://lumen.askfavr.com/email"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "test_user@email.com",
    "city_id": 1
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/email',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'email' => 'test_user@email.com',
            'city_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/email'
payload = {
    "email": "test_user@email.com",
    "city_id": 1
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

null

HTTP Request

POST /email

Body Parameters

Parameter Type Status Description
email string required The email of the user.
city_id integer optional optional The city ID.

Auth-Sessions

Active Sessions

View a users active sessions

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/sessions" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/sessions"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/sessions',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/sessions'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "sessions": [
        {
            "id": 32,
            "token": "6b2da95e-9bd1-43bf-a234-83b69959dc41",
            "user_id": 1170,
            "ip_address": "0.0.0.0",
            "user_agent": "PHPUnit",
            "expiration_date": "2020-03-25 00:00:00",
            "killed": false,
            "created_at": "2020-02-24 03:34:20",
            "updated_at": "2020-02-24 03:34:20"
        },
        {
            "id": 33,
            "token": "086d980e-7294-4e53-8155-f0de8e34f7df",
            "user_id": 1170,
            "ip_address": "0.0.0.0",
            "user_agent": "PHPUnit",
            "expiration_date": "2020-03-25 00:00:00",
            "killed": false,
            "created_at": "2020-02-24 03:34:20",
            "updated_at": "2020-02-24 03:34:20"
        }
    ]
}

HTTP Request

GET /sessions

Destroy Sessions

Destroy all user sessions from every other device

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/destroy" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/destroy"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/destroy',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/destroy'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

GET /destroy

Finance-Payments

Payment Details

View user payment details

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/payment-information" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/payment-information"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/payment-information',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/payment-information'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "user": {
        "user_id": 466,
        "customer_id": "cus_F4ajYdO1Of45L9",
        "express_id": null,
        "card_id": null,
        "type": null,
        "last4": null,
        "exp_month": null,
        "exp_year": null,
        "created_at": "2020-02-24 01:02:22",
        "updated_at": "2020-02-24 01:02:22",
        "user": {
            "id": 466,
            "username": "antone.marquardt75",
            "role": "Customer",
            "first_name": "Shana",
            "last_name": "Klein",
            "email": "cletus.schultz@example.net",
            "phone": "1-484-853-5381 x48588",
            "twilio_phone": "+15075937178",
            "birthday": "1994-10-31",
            "city_id": 4,
            "is_admin": false,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-24 01:02:22",
            "created_at": "2020-02-24 01:02:22",
            "updated_at": "2020-02-24 01:02:22",
            "deleted_at": null
        }
    }
}

HTTP Request

GET /payment-information

Payment History

View a customers payment history

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/payments" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/payments"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/payments',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/payments'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payments": [
        {
            "id": 11,
            "marketplace_id": 45,
            "customer_id": 465,
            "amount": 94.43,
            "stripe_token": null,
            "refunded": false,
            "created_at": "2020-02-24 01:02:22",
            "updated_at": "2020-02-24 01:02:22",
            "customer": {
                "id": 465,
                "username": "mac6279",
                "role": "Verified Freelancer",
                "first_name": "Olen",
                "last_name": "Schmidt",
                "email": "suzanne40@example.net",
                "phone": "+1 (270) 368-6352",
                "twilio_phone": "+15075937178",
                "birthday": "2014-06-10",
                "city_id": 1,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-24 01:02:22",
                "created_at": "2020-02-24 01:02:22",
                "updated_at": "2020-02-24 01:02:22",
                "deleted_at": null
            },
            "marketplace": {
                "id": 45,
                "customer_id": 21,
                "freelancer_accepted": 0,
                "freelancer_count": 1,
                "category_id": 2,
                "price": 35,
                "description": "Quia ea eius ut. Repellendus eum eaque eligendi.",
                "status": "Requested",
                "intensity": "Hard",
                "complete_before": "2020-02-24 00:00:00",
                "image_one": "https:\/\/www.simplemost.com\/wp-content\/uploads\/2017\/01\/8320434990_4c84ea6e62_o-750x500.jpg",
                "image_two": null,
                "image_three": null,
                "created_at": "2020-02-23 21:13:01",
                "updated_at": "2020-02-23 21:13:01",
                "deleted_at": null,
                "isoFormat": "2020-02-24T00:00:00",
                "postedFormat": "2020-02-23T21:13:01"
            }
        }
    ]
}

HTTP Request

GET /payments

Single Payment

View single payment on Favr

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/payment/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/payment/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/payment/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/payment/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payment": {
        "id": 13,
        "marketplace_id": 3,
        "customer_id": 467,
        "amount": 56.98,
        "stripe_token": null,
        "refunded": false,
        "created_at": "2020-02-24 01:02:22",
        "updated_at": "2020-02-24 01:02:22"
    }
}

HTTP Request

GET /payment/{id}

Save Payment Details

Save a customers payment details via Stripe

Example request:

curl -X POST \
    "https://lumen.askfavr.com/customer/save" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/customer/save"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/customer/save',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/customer/save'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

Example response (201):

{
    "message": "Your card has been saved."
}

HTTP Request

POST /customer/save

Has Payment Method

Check if a customer has a payment method

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/customer/exists" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/customer/exists"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/customer/exists',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/customer/exists'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "tokenStatus": true
}

Example response (400):

{
    "message": "Whoops, you need to add a payment method before you can request!",
    "tokenStatus": false
}

HTTP Request

GET /customer/exists

Finance-Transfers

Save Bank Account

Create Stripe express account so worker can get paid.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/freelancer/save?state=JSS87scvS7fhSvh639vd&code=ac_ACNASJNCALKM" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/freelancer/save"
);

let params = {
    "state": "JSS87scvS7fhSvh639vd",
    "code": "ac_ACNASJNCALKM",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/freelancer/save',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'state' => 'JSS87scvS7fhSvh639vd',
            'code' => 'ac_ACNASJNCALKM',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/freelancer/save'
params = {
  'state': 'JSS87scvS7fhSvh639vd',
  'code': 'ac_ACNASJNCALKM'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (302):

{}

Example response (422):

{
    "state": [
        "The state field is required."
    ],
    "code": [
        "The code field is required."
    ]
}

HTTP Request

GET /freelancer/save

Query Parameters

Parameter Status Description
state optional string required The token used to identify the user.
code optional string required The temporary stripe token for OAuth confirmation.

Stripe Login

Login to Stripe dashboard

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/freelancer/dashboard" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/freelancer/dashboard"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/freelancer/dashboard',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/freelancer/dashboard'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (302):

{}

Example response (500):

null

HTTP Request

GET /freelancer/dashboard

Marketplace-Customer

Accept Worker

Accept Freelancer For Favr

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/1/accept/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/1/accept/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/1/accept/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/1/accept/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "You have accepted this worker!"
}

Example response (400):

{
    "message": "You have already accepted this worker!"
}

HTTP Request

GET /marketplace/main/{id}/accept/{freelancer_id}

URL Parameters

Parameter Status Description
id required The ID of the job.
freelancer_id required The ID of the worker.

Reject Worker

Customer Deny Freelancer.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/1/deny/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/1/deny/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/1/deny/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/1/deny/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "You have denied this worker!"
}

HTTP Request

GET /marketplace/main/{id}/deny/{freelancer_id}

URL Parameters

Parameter Status Description
id required The ID of the job.
freelancer_id required The ID of the worker.

Cancel Job

Cancel a job.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/request/cancel/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/request/cancel/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/request/cancel/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/request/cancel/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "Your request has been deleted."
}

Example response (400):

{
    "message": "This job has already been completed."
}

Example response (400):

{
    "message": "You can not cancel a job that is in progress!"
}

HTTP Request

GET /marketplace/main/request/cancel/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Review Job

Mark the job as complete.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/marketplace/main/request/complete/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"rating":5,"review":"This is worker did a good job!"}'
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/request/complete/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "rating": 5,
    "review": "This is worker did a good job!"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/marketplace/main/request/complete/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'rating' => 5.0,
            'review' => 'This is worker did a good job!',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/request/complete/1'
payload = {
    "rating": 5,
    "review": "This is worker did a good job!"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "message": "Your request has been complete. Thank you for choosing Favr!"
}

HTTP Request

POST /marketplace/main/request/complete/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Body Parameters

Parameter Type Status Description
rating number required The rating of the worker.
review string optional optional The review of the worker.

Marketplace-Feed

Customer Jobs

A customers past requested jobs

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/me" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/me"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/me',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/me'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "requests": [
        {
            "id": 12,
            "customer_id": 17,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 4,
            "price": 19,
            "description": "Quos nemo eaque voluptate sit sit qui. Quae nostrum et facere ratione.",
            "status": "Requested",
            "intensity": "Medium",
            "complete_before": "2020-02-24 00:00:00",
            "image_one": "https:\/\/www.simplemost.com\/wp-content\/uploads\/2017\/01\/8320434990_4c84ea6e62_o-750x500.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-23 18:00:38",
            "updated_at": "2020-02-23 18:00:39",
            "deleted_at": null,
            "action": 1,
            "isoFormat": "2020-02-24T00:00:00",
            "postedFormat": "2020-02-23T18:00:38",
            "customer": {
                "id": 17,
                "username": "weber.tommie6",
                "role": "Verified Freelancer",
                "first_name": "Mertie",
                "last_name": "Robel",
                "email": "pbernier@example.com",
                "phone": "+1.327.289.2753",
                "twilio_phone": "+15075937178",
                "birthday": "2008-11-13",
                "city_id": 4,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-23 18:00:38",
                "created_at": "2020-02-23 18:00:38",
                "updated_at": "2020-02-23 18:00:38",
                "deleted_at": null,
                "profile": {
                    "user_id": 17,
                    "image": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/user.png",
                    "description": null,
                    "created_at": "2020-02-23 18:00:38",
                    "updated_at": "2020-02-23 18:00:38"
                }
            },
            "locations": [
                {
                    "marketplace_id": 12,
                    "street_address": " 200 1st St SW",
                    "city": "Rochester",
                    "state": "MN",
                    "zip": "55905",
                    "lat": 44.02243,
                    "long": -92.466751
                }
            ],
            "proposals": []
        }
    ]
}

HTTP Request

GET /marketplace/main/me

Single Job

View a single job

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/request/1?lat=44.0446131&long=-92.48416069999999" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/request/1"
);

let params = {
    "lat": "44.0446131",
    "long": "-92.48416069999999",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/request/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'lat' => '44.0446131',
            'long' => '-92.48416069999999',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/request/1'
params = {
  'lat': '44.0446131',
  'long': '-92.48416069999999'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "id": 5,
    "customer_id": 4,
    "freelancer_accepted": 0,
    "freelancer_count": 1,
    "category_id": 2,
    "price": 37,
    "description": "Assumenda quo deleniti aut iste qui quia aperiam. Veniam necessitatibus quibusdam est ab.",
    "status": "Requested",
    "intensity": "Easy",
    "complete_before": "2020-02-24 00:00:00",
    "image_one": "https:\/\/www.simplemost.com\/wp-content\/uploads\/2017\/01\/8320434990_4c84ea6e62_o-750x500.jpg",
    "image_two": null,
    "image_three": null,
    "created_at": "2020-02-23 17:49:52",
    "updated_at": "2020-02-23 17:49:52",
    "deleted_at": null,
    "action": 2,
    "distance_away": 2.3,
    "isoFormat": "2020-02-24T00:00:00",
    "postedFormat": "2020-02-23T17:49:52",
    "customer": {
        "id": 4,
        "username": "org_admin",
        "role": "Verified Freelancer",
        "first_name": "Organization",
        "last_name": "Admin",
        "email": "nayeli.blick@example.net",
        "phone": "964-304-1016 x810",
        "twilio_phone": "+15075937178",
        "birthday": "2007-10-07",
        "city_id": 4,
        "is_admin": false,
        "organization_id": 1,
        "is_organization_admin": true,
        "credit_amount": 0,
        "intercom_id": null,
        "has_chatkit": false,
        "email_verified_at": "2020-02-23 02:47:26",
        "created_at": "2020-02-23 02:47:26",
        "updated_at": "2020-02-23 02:47:26",
        "deleted_at": null,
        "profile": {
            "user_id": 4,
            "image": "https:\/\/randomuser.me\/api\/portraits\/women\/55.jpg",
            "description": null,
            "created_at": "2020-02-23 02:47:26",
            "updated_at": "2020-02-23 02:47:26"
        }
    },
    "proposals": []
}

HTTP Request

GET /marketplace/main/request/{id}

Query Parameters

Parameter Status Description
lat optional float optional Latitude of job for geo location.
long optional float optional Longitude of job for geo location.

Job Feed

Show feed of jobs in the user's area.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/feed?lat=44.0446131&long=-92.48416069999999" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/feed"
);

let params = {
    "lat": "44.0446131",
    "long": "-92.48416069999999",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/feed',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'lat' => '44.0446131',
            'long' => '-92.48416069999999',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/feed'
params = {
  'lat': '44.0446131',
  'long': '-92.48416069999999'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{
    "requests": [
        {
            "id": 6,
            "customer_id": 2,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 4,
            "price": 37,
            "description": "Et consequatur iusto nam cum. Accusantium est quae laboriosam nisi fugit at consequuntur.",
            "status": "Requested",
            "intensity": "Easy",
            "complete_before": "2020-02-24 00:00:00",
            "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-23 17:51:17",
            "updated_at": "2020-02-23 17:51:17",
            "deleted_at": null,
            "action": 2,
            "distance_away": 214.6,
            "isoFormat": "2020-02-24T00:00:00",
            "postedFormat": "2020-02-23T17:51:17",
            "customer": {
                "id": 2,
                "username": "worker",
                "role": "Verified Freelancer",
                "first_name": "Test",
                "last_name": "Worker",
                "email": "lorenza00@example.com",
                "phone": "(485) 802-0457",
                "twilio_phone": "+15075937178",
                "birthday": "2005-10-03",
                "city_id": 5,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-23 02:47:26",
                "created_at": "2020-02-23 02:47:26",
                "updated_at": "2020-02-23 02:47:26",
                "deleted_at": null,
                "profile": {
                    "user_id": 2,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/women\/58.jpg",
                    "description": null,
                    "created_at": "2020-02-23 02:47:26",
                    "updated_at": "2020-02-23 02:47:26"
                }
            }
        }
    ]
}

HTTP Request

GET /marketplace/main/feed

Query Parameters

Parameter Status Description
lat optional float optional Latitude of job for geo location.
long optional float optional Longitude of job for geo location.

Worker Proposals

The past proposals a worker has made on jobs.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/proposals" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/proposals"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/proposals',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/proposals'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "requests": [
        {
            "id": 1,
            "customer_id": 3,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 7,
            "price": 23,
            "description": "Dolor placeat occaecati cupiditate dolore aut cum. Molestiae labore aspernatur debitis sit ab eos.",
            "status": "Requested",
            "intensity": "Easy",
            "complete_before": "2020-02-24 00:00:00",
            "image_one": "https:\/\/blogs.massaudubon.org\/yourgreatoutdoors\/wp-content\/uploads\/sites\/20\/2012\/08\/Kristin-FrontYard-EarlySpring-Small-2.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-23 18:23:45",
            "updated_at": "2020-02-23 18:23:45",
            "deleted_at": null,
            "action": 3,
            "isoFormat": "2020-02-24T00:00:00",
            "postedFormat": "2020-02-23T18:23:45",
            "customer": {
                "id": 3,
                "username": "customer",
                "role": "Customer",
                "first_name": "Test",
                "last_name": "Worker",
                "email": "gerhold.jennifer@example.org",
                "phone": "661.594.2255",
                "twilio_phone": "+15075937178",
                "birthday": "2002-11-18",
                "city_id": 3,
                "is_admin": false,
                "organization_id": null,
                "is_organization_admin": false,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-23 18:06:48",
                "created_at": "2020-02-23 18:06:48",
                "updated_at": "2020-02-23 18:06:48",
                "deleted_at": null,
                "profile": {
                    "user_id": 3,
                    "image": "https:\/\/randomuser.me\/api\/portraits\/men\/59.jpg",
                    "description": null,
                    "created_at": "2020-02-23 18:06:48",
                    "updated_at": "2020-02-23 18:06:48"
                }
            },
            "proposals": [
                {
                    "marketplace_id": 1,
                    "user_id": 7,
                    "approved": 0,
                    "rating": null,
                    "review": null,
                    "arrived_at": null,
                    "complete_at": null,
                    "created_at": "2020-02-23 18:23:45",
                    "updated_at": "2020-02-23 18:23:45",
                    "user": {
                        "id": 7,
                        "username": "jon8256",
                        "role": "Verified Freelancer",
                        "first_name": "Lily",
                        "last_name": "Robel",
                        "email": "cluettgen@example.org",
                        "phone": "527.272.7404",
                        "twilio_phone": "+15075937178",
                        "birthday": "2003-12-15",
                        "city_id": 1,
                        "is_admin": false,
                        "organization_id": null,
                        "is_organization_admin": false,
                        "credit_amount": 0,
                        "intercom_id": null,
                        "has_chatkit": false,
                        "email_verified_at": "2020-02-23 18:23:45",
                        "created_at": "2020-02-23 18:23:45",
                        "updated_at": "2020-02-23 18:23:45",
                        "deleted_at": null,
                        "profile": {
                            "user_id": 7,
                            "image": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/user.png",
                            "description": null,
                            "created_at": "2020-02-23 18:23:45",
                            "updated_at": "2020-02-23 18:23:45"
                        }
                    }
                }
            ]
        }
    ]
}

HTTP Request

GET /marketplace/main/proposals

Marketplace-Freelancer

Accept Job

Worker accepts a customer request.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/accept/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/accept/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/accept/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/accept/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "You have accepted this Favr! The customer has been notified."
}

HTTP Request

GET /marketplace/main/accept/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Withdraw Proposal

Withdraw from a customer request

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/freelancer/withdraw/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/freelancer/withdraw/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/freelancer/withdraw/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/freelancer/withdraw/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "You have withdrawn from this Favr request."
}

HTTP Request

GET /marketplace/main/freelancer/withdraw/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Worker Arrive

The worker arrives to the job. (customer gets charged here)

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/marketplace/main/freelancer/arrive/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/freelancer/arrive/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/marketplace/main/freelancer/arrive/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/freelancer/arrive/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "Your customer has been notified of your arrival."
}

HTTP Request

GET /marketplace/main/freelancer/arrive/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Worker Complete

Worker marks job as complete and reviews the customer.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/marketplace/main/freelancer/complete/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"rating":3,"review":"The customer was unreasonable for most of the job."}'
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/freelancer/complete/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "rating": 3,
    "review": "The customer was unreasonable for most of the job."
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/marketplace/main/freelancer/complete/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'rating' => 3.0,
            'review' => 'The customer was unreasonable for most of the job.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/freelancer/complete/1'
payload = {
    "rating": 3,
    "review": "The customer was unreasonable for most of the job."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "message": "Job has been marked as complete. Your customer will confirm this."
}

HTTP Request

POST /marketplace/main/freelancer/complete/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Body Parameters

Parameter Type Status Description
rating number required The rating of the customer.
review string required The review of the customer.

Marketplace-Request

Request Job

Customer request a job that is posted to the feed

Example request:

curl -X POST \
    "https://lumen.askfavr.com/marketplace/main/request" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"I need my lawn mowed.","freelancer_count":"1","date":"03\/11\/2020 12:00:00","street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901","category_id":"1","intensity":"Medium","price":"50.00","image_one":"none","image_two":"none","image_three":"none"}'
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/request"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "I need my lawn mowed.",
    "freelancer_count": "1",
    "date": "03\/11\/2020 12:00:00",
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901",
    "category_id": "1",
    "intensity": "Medium",
    "price": "50.00",
    "image_one": "none",
    "image_two": "none",
    "image_three": "none"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/marketplace/main/request',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'I need my lawn mowed.',
            'freelancer_count' => '1',
            'date' => '03/11/2020 12:00:00',
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
            'category_id' => '1',
            'intensity' => 'Medium',
            'price' => '50.00',
            'image_one' => 'none',
            'image_two' => 'none',
            'image_three' => 'none',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/request'
payload = {
    "description": "I need my lawn mowed.",
    "freelancer_count": "1",
    "date": "03\/11\/2020 12:00:00",
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901",
    "category_id": "1",
    "intensity": "Medium",
    "price": "50.00",
    "image_one": "none",
    "image_two": "none",
    "image_three": "none"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "message": "Favr Successfully Posted!",
    "id": 1
}

HTTP Request

POST /marketplace/main/request

Body Parameters

Parameter Type Status Description
description string required The description of the job.
freelancer_count numeric required The number of workers needed. (Only one allowed per job atm)
date string required The datetime when the job needs to be complete before.
street_address string required Address of the job location.
city string required City of the job location.
state string required State of the job location.
zip string required Zip code of the job location.
category_id numeric required The category id of the job.
intensity string required The difficulty of the job
price numeric required The price of the job.
image_one string optional optional Base64 encoded image of job.
image_two string optional optional Base64 encoded image of job.
image_three string optional optional Base64 encoded image of job.

Edit Job

Customer edit their requested job.

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/marketplace/main/edit/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"I need my lawn mowed.","date":"03\/15\/2020 10:00:00","street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901","category_id":"1"}'
const url = new URL(
    "https://lumen.askfavr.com/marketplace/main/edit/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "I need my lawn mowed.",
    "date": "03\/15\/2020 10:00:00",
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901",
    "category_id": "1"
}

fetch(url, {
    method: "PATCH",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/marketplace/main/edit/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'I need my lawn mowed.',
            'date' => '03/15/2020 10:00:00',
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
            'category_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/marketplace/main/edit/1'
payload = {
    "description": "I need my lawn mowed.",
    "date": "03\/15\/2020 10:00:00",
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901",
    "category_id": "1"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PATCH /marketplace/main/edit/{id}

URL Parameters

Parameter Status Description
id required The ID of the job.

Body Parameters

Parameter Type Status Description
description string optional optional Update description of the job.
date string optional optional Update the job deadline.
street_address string optional optional Update address of the job location.
city string optional optional Update city of the job location.
state string optional optional Update state of the job location.
zip string optional optional Update zip code of the job location.
category_id numeric required Update category id of the job.

Organization-Account

Update organization

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/organization/1/account" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"name":"Autumn Ridge","total_goal":5000,"individual_goal":250,"email":"foo@bar.com","logo":"temporibus"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/account"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "name": "Autumn Ridge",
    "total_goal": 5000,
    "individual_goal": 250,
    "email": "foo@bar.com",
    "logo": "temporibus"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/organization/1/account',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'name' => 'Autumn Ridge',
            'total_goal' => 5000.0,
            'individual_goal' => 250.0,
            'email' => 'foo@bar.com',
            'logo' => 'temporibus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/account'
payload = {
    "name": "Autumn Ridge",
    "total_goal": 5000,
    "individual_goal": 250,
    "email": "foo@bar.com",
    "logo": "temporibus"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /organization/{id}/account

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
name string optional Name of the organization.
total_goal number optional The fundraising goal for the organization.
individual_goal number optional The individual goal for members of the organization.
email string optional The email of the organization.
logo string optional Base64 encoding of the organization logo. Example:

Update location

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/organization/1/location" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/location"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/organization/1/location',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/location'
payload = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /organization/{id}/location

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
street_address string optional Address of the organization.
city string optional City of the organization.
state string optional State of the organization.
zip string optional Zip code of the organization.

Create QR Code

Generate a QR Code for an organization

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/qr-code" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/qr-code"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/qr-code',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/qr-code'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "url": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/local\/qr-code\/p8PM3QcuZrM9cnhU.jpg"
}

HTTP Request

GET /organization/{id}/qr-code

URL Parameters

Parameter Status Description
id required The ID of the organization.

Login/Create Stripe

Login or Create Organization Stripe Connect.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/stripe/login" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/stripe/login"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/stripe/login',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/stripe/login'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "url": "https:\/\/connect.stripe.com\/express\/MLy5ZspwzALg"
}

HTTP Request

GET /organization/{id}/stripe/login

URL Parameters

Parameter Status Description
id required The ID of the organization.

Organization-Home

User Stats

Get user statistics like total count and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/user-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/user-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/user-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/user-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 1,
    "growth": 0
}

HTTP Request

GET /organization/{id}/user-stats

URL Parameters

Parameter Status Description
id required The ID of the organization.

Revenue Stats

Get revenue statistics and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/revenue-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/revenue-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/revenue-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/revenue-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /organization/{id}/revenue-stats

URL Parameters

Parameter Status Description
id required The ID of the organization.

Profit Stats

Get profit statistics and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/profit-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/profit-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/profit-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/profit-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /organization/{id}/profit-stats

URL Parameters

Parameter Status Description
id required The ID of the organization.

Traffic stats

Get traffic statistics and growth.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/traffic-stats" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/traffic-stats"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/traffic-stats',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/traffic-stats'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "total": 0,
    "growth": -100
}

HTTP Request

GET /organization/{id}/traffic-stats

URL Parameters

Parameter Status Description
id required The ID of the organization.

Role Breakdown

User breakdown by roles.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/role-breakdown" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/role-breakdown"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/role-breakdown',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/role-breakdown'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "workers": 133,
    "customers": 144,
    "pending": 144
}

HTTP Request

GET /organization/{id}/role-breakdown

URL Parameters

Parameter Status Description
id required The ID of the organization.

Sales Graph

Get the sales over time for a graph.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/sales-graph" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/sales-graph"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/sales-graph',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/sales-graph'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "labels": [
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
        "Jan",
        "Feb"
    ],
    "datasets": [
        {
            "label": "Sales Value",
            "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ]
        }
    ]
}

HTTP Request

GET /organization/{id}/sales-graph

URL Parameters

Parameter Status Description
id required The ID of the organization.

Jobs Graph

Get jobs over time for graph.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/jobs-graph" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/jobs-graph"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/jobs-graph',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/jobs-graph'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "labels": [
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec",
        "Jan",
        "Feb"
    ],
    "datasets": [
        {
            "label": "Jobs",
            "data": [
                0,
                0,
                0,
                0,
                0,
                0,
                0
            ]
        }
    ]
}

HTTP Request

GET /organization/{id}/jobs-graph

URL Parameters

Parameter Status Description
id required The ID of the organization.

Get the top five workers of an organization

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/top-workers" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/top-workers"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/top-workers',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/top-workers'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "workers": [
        {
            "id": 337,
            "username": "xcrooks65",
            "role": "Pending Freelancer",
            "first_name": "Annabel",
            "last_name": "Walker",
            "email": "bernita.oconner@example.com",
            "phone": "1-742-660-3292",
            "twilio_phone": "+15075937178",
            "birthday": "1995-09-09",
            "city_id": 3,
            "is_admin": false,
            "organization_id": 89,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-29 17:36:37",
            "created_at": "2020-02-29 17:36:37",
            "updated_at": "2020-02-29 17:36:37",
            "deleted_at": null,
            "progress": 0.14,
            "earned_amount": 33.97,
            "profile": {
                "user_id": 337,
                "image": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/user.png",
                "description": null,
                "created_at": "2020-02-29 17:36:37",
                "updated_at": "2020-02-29 17:36:37"
            }
        }
    ]
}

HTTP Request

GET /organization/{id}/top-workers

URL Parameters

Parameter Status Description
id required The ID of the organization.

Time Worked

Show the total amount of time worked in minutes.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/time-worked" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/time-worked"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/time-worked',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/time-worked'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "minutes": 1160
}

HTTP Request

GET /organization/{id}/time-worked

URL Parameters

Parameter Status Description
id required The ID of the organization.

Organization-Marketplace

All Jobs

View all jobs belonging to an organization.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/jobs" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/jobs"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/jobs',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/jobs'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "jobs": [
        {
            "id": 662,
            "customer_id": 3589,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 38,
            "description": "Numquam qui voluptatem eos quia voluptas ipsam numquam. Hic voluptatum praesentium iste hic eum.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:01:28",
            "updated_at": "2020-02-15 19:01:28",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:01:28",
            "customer": {
                "id": 3589,
                "username": "grayson1221",
                "role": "Customer",
                "first_name": "Charley",
                "last_name": "Hermann",
                "email": "devante86@example.net",
                "phone": "+18534218507",
                "twilio_phone": "+15075937178",
                "birthday": "1974-03-15",
                "city_id": 5,
                "is_admin": false,
                "organization_id": 418,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:01:28",
                "created_at": "2020-02-15 19:01:28",
                "updated_at": "2020-02-15 19:01:28",
                "deleted_at": null,
                "profile": null
            },
            "proposals": [],
            "category": {
                "id": 2,
                "name": "Cleaning & Housekeeping",
                "icon_image": "mop.png",
                "active": true
            },
            "locations": [
                {
                    "marketplace_id": 662,
                    "street_address": "111 1st NW",
                    "city": "Rochester",
                    "state": "MN",
                    "zip": "55901",
                    "lat": 44.0446131,
                    "long": -92.48416069999999
                }
            ]
        }
    ]
}

HTTP Request

GET /organization/{id}/jobs

URL Parameters

Parameter Status Description
id required The ID of the organization.

Single Job

View a single job in an organization

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/job/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "job": {
        "id": 655,
        "customer_id": 3578,
        "freelancer_accepted": 0,
        "freelancer_count": 1,
        "category_id": 4,
        "price": 30,
        "description": "Iusto perferendis maiores et voluptatem. Distinctio est assumenda blanditiis quo rerum.",
        "status": "Requested",
        "intensity": "Medium",
        "complete_before": "2020-02-16 00:00:00",
        "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
        "image_two": null,
        "image_three": null,
        "created_at": "2020-02-15 18:45:27",
        "updated_at": "2020-02-15 18:45:27",
        "deleted_at": null,
        "isoFormat": "2020-02-16T00:00:00",
        "postedFormat": "2020-02-15T18:45:27",
        "customer": {
            "id": 3578,
            "username": "jessyca.torp75",
            "role": "Customer",
            "first_name": "Vito",
            "last_name": "Hansen",
            "email": "odibbert@example.org",
            "phone": "1-278-879-2578 x68339",
            "twilio_phone": "+15075937178",
            "birthday": "1980-01-18",
            "city_id": 4,
            "is_admin": false,
            "organization_id": 411,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 18:45:27",
            "created_at": "2020-02-15 18:45:27",
            "updated_at": "2020-02-15 18:45:27",
            "deleted_at": null,
            "profile": null
        },
        "locations": [],
        "proposals": [],
        "category": {
            "id": 4,
            "name": "Junk Removal",
            "icon_image": "recycling.png",
            "active": true
        }
    }
}

HTTP Request

GET /organization/{id}/job/{job_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
job_id required The ID of the jobs.

Assign Worker

Assign a worker to a job.

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/organization/1/job/1/assign" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"worker_id":"1"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/job/1/assign"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "worker_id": "1"
}

fetch(url, {
    method: "PATCH",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/organization/1/job/1/assign',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'worker_id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/job/1/assign'
payload = {
    "worker_id": "1"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PATCH /organization/{id}/job/{job_id}/assign

URL Parameters

Parameter Status Description
id required The ID of the organization.
job_id required The ID of the jobs.

Body Parameters

Parameter Type Status Description
worker_id required optional The ID of the worker.

Update Job

Update a job belonging to an organization.

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/organization/1/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"category_id":"1","complete_before":"3\/11\/2020 12:00:00","intensity":"Medium","description":"I need help cleaning my basement."}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "category_id": "1",
    "complete_before": "3\/11\/2020 12:00:00",
    "intensity": "Medium",
    "description": "I need help cleaning my basement."
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/organization/1/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'category_id' => '1',
            'complete_before' => '3/11/2020 12:00:00',
            'intensity' => 'Medium',
            'description' => 'I need help cleaning my basement.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/job/1'
payload = {
    "category_id": "1",
    "complete_before": "3\/11\/2020 12:00:00",
    "intensity": "Medium",
    "description": "I need help cleaning my basement."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /organization/{id}/job/{job_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
job_id required The ID of the jobs.

Body Parameters

Parameter Type Status Description
category_id Update optional the category.
complete_before Update optional the deadline.
intensity Update optional the intensity.
description Update optional the description.

Update Location

Update a job location

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/organization/1/location/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/location/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/organization/1/location/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/location/1'
payload = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /organization/{id}/location/{job_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
job_id required The ID of the jobs.

Body Parameters

Parameter Type Status Description
street_address string optional Address of the organization.
city string optional City of the organization.
state string optional State of the organization.
zip string optional Zip code of the organization.

Delete job

Delete a job belonging to an organization.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/organization/1/job/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/job/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/organization/1/job/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/job/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /organization/{id}/job/{job_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
job_id required The ID of the jobs.

Organization-Payment

All Payments

View all payments in an organization.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/payments" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/payments"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/payments',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/payments'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payments": [
        {
            "id": 1,
            "marketplace_id": 663,
            "customer_id": 3592,
            "amount": 28.01,
            "stripe_token": null,
            "refunded": false,
            "created_at": "2020-02-15 19:18:46",
            "updated_at": "2020-02-15 19:18:46",
            "customer": {
                "id": 3592,
                "username": "qmills88",
                "role": "Customer",
                "first_name": "Hassie",
                "last_name": "Nader",
                "email": "braeden.franecki@example.com",
                "phone": "(447) 724-7821",
                "twilio_phone": "+15075937178",
                "birthday": "1996-12-16",
                "city_id": 5,
                "is_admin": false,
                "organization_id": 421,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:18:46",
                "created_at": "2020-02-15 19:18:46",
                "updated_at": "2020-02-15 19:18:46",
                "deleted_at": null,
                "profile": null
            }
        }
    ]
}

HTTP Request

GET /organization/{id}/payments

URL Parameters

Parameter Status Description
id required The ID of the organization.

Single Payment

View a single payment.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/payment/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/payment/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/payment/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/payment/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "payment": {
        "id": 2,
        "marketplace_id": 664,
        "customer_id": 3593,
        "amount": 54.32,
        "stripe_token": null,
        "refunded": false,
        "created_at": "2020-02-15 19:18:57",
        "updated_at": "2020-02-15 19:18:57",
        "customer": {
            "id": 3593,
            "username": "fmcclure86",
            "role": "Verified Freelancer",
            "first_name": "Ottilie",
            "last_name": "Hettinger",
            "email": "makayla.beahan@example.com",
            "phone": "(814) 370-8344",
            "twilio_phone": "+15075937178",
            "birthday": "1973-12-20",
            "city_id": 4,
            "is_admin": false,
            "organization_id": 422,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 19:18:57",
            "created_at": "2020-02-15 19:18:57",
            "updated_at": "2020-02-15 19:18:57",
            "deleted_at": null,
            "profile": null,
            "stripe": null
        },
        "marketplace": {
            "id": 664,
            "customer_id": 3593,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 25,
            "description": "Dolorem aut alias voluptatem. Minus facere doloribus qui.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/www.simplemost.com\/wp-content\/uploads\/2017\/01\/8320434990_4c84ea6e62_o-750x500.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:18:57",
            "updated_at": "2020-02-15 19:18:57",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:18:57"
        }
    }
}

HTTP Request

GET /organization/{id}/payment/{payment_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
payment_id required The ID of the payment.

Refund Payment

Refund a payment to a customer.

Example request:

curl -X PATCH \
    "https://lumen.askfavr.com/organization/1/refund/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/refund/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PATCH",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->patch(
    'https://lumen.askfavr.com/organization/1/refund/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/refund/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PATCH', url, headers=headers)
response.json()

HTTP Request

PATCH /organization/{id}/refund/{payment_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
payment_id required The ID of the payment.

Organization-Setup

Update location

Example request:

curl -X POST \
    "https://lumen.askfavr.com/organization/1/location" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/location"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/organization/1/location',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/location'
payload = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /organization/{id}/location

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
street_address required optional string Address of the organization.
city string required City of the organization.
state string required State of the organization.
zip string required Zip code of the organization.

Organization-Transfer

All Transfers

View all transfers made by FAVR

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/transfers" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/transfers"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/transfers',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/transfers'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "transfers": [
        {
            "id": 5,
            "marketplace_id": 669,
            "freelancer_id": 3598,
            "amount": 45.5,
            "stripe_token": null,
            "reversed": false,
            "created_at": "2020-02-15 19:34:49",
            "updated_at": "2020-02-15 19:34:49",
            "freelancer": {
                "id": 3598,
                "username": "fwehner59",
                "role": "Verified Freelancer",
                "first_name": "Jamel",
                "last_name": "Sawayn",
                "email": "schiller.gwen@example.org",
                "phone": "214.212.1839 x057",
                "twilio_phone": "+15075937178",
                "birthday": "1983-03-04",
                "city_id": 4,
                "is_admin": false,
                "organization_id": 427,
                "is_organization_admin": true,
                "credit_amount": 0,
                "intercom_id": null,
                "has_chatkit": false,
                "email_verified_at": "2020-02-15 19:34:49",
                "created_at": "2020-02-15 19:34:49",
                "updated_at": "2020-02-15 19:34:49",
                "deleted_at": null,
                "profile": null
            }
        }
    ]
}

HTTP Request

GET /organization/{id}/transfers

URL Parameters

Parameter Status Description
id required The ID of the organization.

Single Transfer

Show specific transfer.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/transfer/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/transfer/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/transfer/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/transfer/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "transfer": {
        "id": 3,
        "marketplace_id": 667,
        "freelancer_id": 3596,
        "amount": 82.56,
        "stripe_token": null,
        "reversed": false,
        "created_at": "2020-02-15 19:32:45",
        "updated_at": "2020-02-15 19:32:45",
        "freelancer": {
            "id": 3596,
            "username": "wehner.gino97",
            "role": "Pending Freelancer",
            "first_name": "Marianne",
            "last_name": "Feest",
            "email": "daron.gutkowski@example.org",
            "phone": "+1-265-290-7745",
            "twilio_phone": "+15075937178",
            "birthday": "2007-09-29",
            "city_id": 1,
            "is_admin": false,
            "organization_id": 425,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 19:32:45",
            "created_at": "2020-02-15 19:32:45",
            "updated_at": "2020-02-15 19:32:45",
            "deleted_at": null,
            "profile": null,
            "stripe": null
        },
        "marketplace": {
            "id": 667,
            "customer_id": 3347,
            "freelancer_accepted": 0,
            "freelancer_count": 1,
            "category_id": 2,
            "price": 44,
            "description": "Maxime nulla autem atque distinctio. Et rerum voluptatem omnis qui mollitia.",
            "status": "Requested",
            "intensity": "Hard",
            "complete_before": "2020-02-16 00:00:00",
            "image_one": "https:\/\/thenewswheel.com\/wp-content\/uploads\/2018\/04\/junk-yards-pay-most-for-cars-760x507.jpg",
            "image_two": null,
            "image_three": null,
            "created_at": "2020-02-15 19:32:45",
            "updated_at": "2020-02-15 19:32:45",
            "deleted_at": null,
            "isoFormat": "2020-02-16T00:00:00",
            "postedFormat": "2020-02-15T19:32:45"
        }
    }
}

HTTP Request

GET /organization/{id}/transfer/{transfer_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
payment_id required The ID of the payment.

Organization-User

All Users

View all users belonging to an organization.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/users" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/users"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/users',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/users'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "users": [
        {
            "id": 3620,
            "username": "wbreitenberg52",
            "role": "Verified Freelancer",
            "first_name": "Arjun",
            "last_name": "Stoltenberg",
            "email": "kim24@example.com",
            "phone": "+1-501-428-5134",
            "twilio_phone": "+15075937178",
            "birthday": "1975-08-04",
            "city_id": 5,
            "is_admin": false,
            "organization_id": 441,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 20:03:58",
            "created_at": "2020-02-15 20:03:58",
            "updated_at": "2020-02-15 20:03:58",
            "deleted_at": null,
            "profile": null
        }
    ]
}

HTTP Request

GET /organization/{id}/users

URL Parameters

Parameter Status Description
id required The ID of the organization.

Single User

View a single user.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/user/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "user": [
        {
            "id": 3621,
            "username": "olegros83",
            "role": "Verified Freelancer",
            "first_name": "Terrell",
            "last_name": "Kautzer",
            "email": "tiffany.halvorson@example.com",
            "phone": "(926) 992-6598 x3792",
            "twilio_phone": "+15075937178",
            "birthday": "1997-02-26",
            "city_id": 2,
            "is_admin": false,
            "organization_id": 442,
            "is_organization_admin": true,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-15 20:03:58",
            "created_at": "2020-02-15 20:03:58",
            "updated_at": "2020-02-15 20:03:58",
            "deleted_at": null
        }
    ]
}

HTTP Request

GET /organization/{id}/user/{user_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
user_id required The ID of the user.

Create User

Create a new user for an organization

Example request:

curl -X POST \
    "https://lumen.askfavr.com/organization/1/register" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"first_name":"John","last_name":"Doe","username":"test_user","email":"test_user@email.com","password":"secret","role":"Customer"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/register"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "first_name": "John",
    "last_name": "Doe",
    "username": "test_user",
    "email": "test_user@email.com",
    "password": "secret",
    "role": "Customer"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/organization/1/register',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'first_name' => 'John',
            'last_name' => 'Doe',
            'username' => 'test_user',
            'email' => 'test_user@email.com',
            'password' => 'secret',
            'role' => 'Customer',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/register'
payload = {
    "first_name": "John",
    "last_name": "Doe",
    "username": "test_user",
    "email": "test_user@email.com",
    "password": "secret",
    "role": "Customer"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /organization/{id}/register

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
first_name string required The first name of the user.
last_name string required The last name of the user.
username string required The username of the user.
email string required The email of the user.
password string required The password for the user.
role string required The role for the user.

Update User

Update a user for an organization

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/organization/1/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"I am a good worker.","email":"test_user@email.com","role":"Customer"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "I am a good worker.",
    "email": "test_user@email.com",
    "role": "Customer"
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/organization/1/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'I am a good worker.',
            'email' => 'test_user@email.com',
            'role' => 'Customer',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/user/1'
payload = {
    "description": "I am a good worker.",
    "email": "test_user@email.com",
    "role": "Customer"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /organization/{id}/user/{user_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
user_id required The ID of the user.

Body Parameters

Parameter Type Status Description
description string optional The profile description of a user.
email string optional The email of the user.
role string optional The role for the user.

Delete User

Delete a user from an organization.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/organization/1/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/organization/1/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/user/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /organization/{id}/user/{user_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
user_id required The ID of the user.

Invite Users

Send registration emails in bulk using a csv or xsls file.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/organization/1/invite" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"file":"quas"}'
const url = new URL(
    "https://lumen.askfavr.com/organization/1/invite"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "file": "quas"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/organization/1/invite',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'file' => 'quas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/invite'
payload = {
    "file": "quas"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /organization/{id}/invite

URL Parameters

Parameter Status Description
id required The ID of the organization.

Body Parameters

Parameter Type Status Description
file required optional This contains the emails of the pending users. Must be a csv or XSLS

Pending Invitations

View pending invitations

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/1/invitations" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/invitations"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/1/invitations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/invitations'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "contacts": [
        {
            "id": 3,
            "organization_id": 447,
            "email": "foo@example.com",
            "completed_registration": false,
            "created_at": "2020-02-15 20:03:59",
            "updated_at": "2020-02-15 20:03:59"
        }
    ]
}

HTTP Request

GET /organization/{id}/invitations

URL Parameters

Parameter Status Description
id required The ID of the organization.

Password Reset

Send a password reset

Example request:

curl -X POST \
    "https://lumen.askfavr.com/organization/1/password-reset/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/1/password-reset/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/organization/1/password-reset/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/1/password-reset/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

POST /organization/{id}/password-reset/{user_id}

URL Parameters

Parameter Status Description
id required The ID of the organization.
user_id required The ID of the user.

Organization-Webhook

Create Stripe Account

Create Stripe express account (no auth)

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/organization/save" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/organization/save"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/organization/save',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/organization/save'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{}

HTTP Request

GET /organization/save

URL Parameters

Parameter Status Description
state optional string required The user token returned from Stripe.
code optional string required The user token returned from Stripe.

QRCode Redirect

Send user to organization app from QRCode

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/qr-code/9be3fe13-6b51-3a3b-aef4-998015a168bf" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/qr-code/9be3fe13-6b51-3a3b-aef4-998015a168bf"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/qr-code/9be3fe13-6b51-3a3b-aef4-998015a168bf',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/qr-code/9be3fe13-6b51-3a3b-aef4-998015a168bf'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (302):

{}

Example response (302):

null

HTTP Request

GET /qr-code/{uuid}

URL Parameters

Parameter Status Description
uuid required The unique ID of the organization.

User-Chat

All Rooms

View a users chat rooms.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/rooms" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/rooms"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/rooms',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/rooms'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 29,
        "pusher_id": "eeee3554-efe2-43a1-9ecf-46d3c4315cd9",
        "users": [
            "nkilback46",
            "esmeralda4871"
        ],
        "created_at": "2020-02-20 21:24:32",
        "updated_at": "2020-02-20 21:24:32",
        "unread": 0,
        "members": [
            {
                "first_name": "Baron",
                "last_name": "Collier",
                "id": 2119,
                "username": "esmeralda4871",
                "role": "Pending Freelancer",
                "profile": null
            },
            {
                "first_name": "Tracy",
                "last_name": "Parker",
                "id": 2118,
                "username": "nkilback46",
                "role": "Customer",
                "profile": null
            }
        ],
        "last_message": null,
        "messages": []
    }
]

HTTP Request

GET /rooms

View Room

View a single chat room

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/room/b3b0746f-357a-4493-b97b-5b0e3f420db0" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/room/b3b0746f-357a-4493-b97b-5b0e3f420db0"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/room/b3b0746f-357a-4493-b97b-5b0e3f420db0',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/room/b3b0746f-357a-4493-b97b-5b0e3f420db0'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "id": 30,
    "pusher_id": "3e9e991e-7809-48f0-8182-1ae141e23dd5",
    "users": [
        "ndaniel32",
        "auer.tristin99"
    ],
    "created_at": "2020-02-20 21:24:32",
    "updated_at": "2020-02-20 21:24:32",
    "members": [
        {
            "first_name": "Joanie",
            "last_name": "Bayer",
            "id": 2121,
            "username": "auer.tristin99",
            "role": "Verified Freelancer",
            "profile": null
        },
        {
            "first_name": "Danyka",
            "last_name": "Russel",
            "id": 2120,
            "username": "ndaniel32",
            "role": "Pending Freelancer",
            "profile": null
        }
    ],
    "last_message": null,
    "messages": []
}

HTTP Request

GET /room/{uuid}

URL Parameters

Parameter Status Description
uuid required The pusher_id of the chat room.

Find Room

Find a chat room between two users. Redirect them to the chat room.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/chat/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/chat/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/chat/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/chat/john.doe'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "id": "68583765-02a6-4df1-b65b-ec0b55938722"
}

HTTP Request

GET /chat/{username}

URL Parameters

Parameter Status Description
username required The username of the user the sender wants to chat with.

Send Message

Send a message to a user.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/message/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"message":"Hello world!"}'
const url = new URL(
    "https://lumen.askfavr.com/message/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "message": "Hello world!"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/message/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'message' => 'Hello world!',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/message/1'
payload = {
    "message": "Hello world!"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /message/{uuid}

Body Parameters

Parameter Type Status Description
message string required The message the user wants to send.

User-Credit

Redeem Credit

Redeem user credit.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/redeem" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"code":"ZNDJAX"}'
const url = new URL(
    "https://lumen.askfavr.com/redeem"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "code": "ZNDJAX"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/redeem',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'code' => 'ZNDJAX',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/redeem'
payload = {
    "code": "ZNDJAX"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /redeem

Body Parameters

Parameter Type Status Description
code string required The code for credit.

View Credit

View user credit amount.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/credit" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/credit"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/credit',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/credit'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "credit": "$20.00"
}

HTTP Request

GET /credit

User-Device-Token

Save APNS Token

APN Notification to send push notifications on iOS devices.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/apn_token" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"device_token":"c422c3336e71179b8b27ad8cd02b1e40cf3ea2a224ad9f1d085fbfc1b5f950a9"}'
const url = new URL(
    "https://lumen.askfavr.com/apn_token"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "device_token": "c422c3336e71179b8b27ad8cd02b1e40cf3ea2a224ad9f1d085fbfc1b5f950a9"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/apn_token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'device_token' => 'c422c3336e71179b8b27ad8cd02b1e40cf3ea2a224ad9f1d085fbfc1b5f950a9',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/apn_token'
payload = {
    "device_token": "c422c3336e71179b8b27ad8cd02b1e40cf3ea2a224ad9f1d085fbfc1b5f950a9"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /apn_token

Body Parameters

Parameter Type Status Description
device_token string required The device token for notifications.

Save FCM Token

FCM Notification to send push notifications on android/web devices.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/fcm_token" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"device_token":"e8xsQQGA9_M:APA91bEjoJLBatdoP0_4NJGdhbyN0w1Nx1oLiRR8DSaFjyXC9NGol6uXiyK3Ytp9sDudmMvgLKWXNY7Qo3n14ndqoetDv-T8PIJu8sK3yEUcCh42O1RYvVUp7AnMrr9oz3ObTWtt-Uzw"}'
const url = new URL(
    "https://lumen.askfavr.com/fcm_token"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "device_token": "e8xsQQGA9_M:APA91bEjoJLBatdoP0_4NJGdhbyN0w1Nx1oLiRR8DSaFjyXC9NGol6uXiyK3Ytp9sDudmMvgLKWXNY7Qo3n14ndqoetDv-T8PIJu8sK3yEUcCh42O1RYvVUp7AnMrr9oz3ObTWtt-Uzw"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/fcm_token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'device_token' => 'e8xsQQGA9_M:APA91bEjoJLBatdoP0_4NJGdhbyN0w1Nx1oLiRR8DSaFjyXC9NGol6uXiyK3Ytp9sDudmMvgLKWXNY7Qo3n14ndqoetDv-T8PIJu8sK3yEUcCh42O1RYvVUp7AnMrr9oz3ObTWtt-Uzw',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/fcm_token'
payload = {
    "device_token": "e8xsQQGA9_M:APA91bEjoJLBatdoP0_4NJGdhbyN0w1Nx1oLiRR8DSaFjyXC9NGol6uXiyK3Ytp9sDudmMvgLKWXNY7Qo3n14ndqoetDv-T8PIJu8sK3yEUcCh42O1RYvVUp7AnMrr9oz3ObTWtt-Uzw"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /fcm_token

Body Parameters

Parameter Type Status Description
device_token string required The device token for notifications.

User-Location

Create Saved Location

Add a user saved location.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/locations" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"street_address":"123 Main St NE","city":"Rochester","state":"MN","zip":"55901"}'
const url = new URL(
    "https://lumen.askfavr.com/locations"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/locations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'street_address' => '123 Main St NE',
            'city' => 'Rochester',
            'state' => 'MN',
            'zip' => '55901',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/locations'
payload = {
    "street_address": "123 Main St NE",
    "city": "Rochester",
    "state": "MN",
    "zip": "55901"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /locations

Body Parameters

Parameter Type Status Description
street_address string required Address of the organization.
city string required City of the organization.
state string required State of the organization.
zip string required Zip code of the organization.

All Locations

View saved locations.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/locations" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/locations"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/locations',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/locations'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "locations": [
        {
            "id": 22,
            "user_id": 2580,
            "street_address": "123 Main Street",
            "city": "Burnsville",
            "state": "MN",
            "zip": "55306",
            "lat": -1,
            "long": -1,
            "default": false
        }
    ]
}

HTTP Request

GET /locations

Delete Location

Remove a Save location

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/location/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/location/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/location/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/location/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /location/{id}

URL Parameters

Parameter Status Description
id required The ID of the location.

Default Location

Update default location.

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/location/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/location/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/location/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/location/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

PUT /location/{id}

URL Parameters

Parameter Status Description
id required The ID of the location.

Select City

User can select a city.

Example request:

curl -X PUT \
    "https://lumen.askfavr.com/select-city" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"city_id":1}'
const url = new URL(
    "https://lumen.askfavr.com/select-city"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "city_id": 1
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://lumen.askfavr.com/select-city',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'city_id' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/select-city'
payload = {
    "city_id": 1
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

PUT /select-city

Body Parameters

Parameter Type Status Description
city_id integer required The city ID.

Current City

User's current service area.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/current-city" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/current-city"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/current-city',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/current-city'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "id": 1
}

HTTP Request

GET /current-city

User-Notification

Single Notification

View a notification

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/notification/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/notification/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/notification/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/notification/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "notification": {
        "id": 7,
        "user_id": 2582,
        "type": "Friend",
        "message": "Test Message",
        "action": {
            "page": "\/app\/profile",
            "params": 1187
        },
        "read": true,
        "created_at": "2020-02-21 00:41:42",
        "updated_at": "2020-02-21 00:41:42"
    }
}

HTTP Request

GET /notification/{id}

URL Parameters

Parameter Status Description
id required The ID of the notification.

New Notifications

Unread user notifications

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/notifications/new" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/notifications/new"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/notifications/new',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/notifications/new'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "notifications": [
        {
            "id": 8,
            "user_id": 2583,
            "type": "Friend",
            "message": "Test Message",
            "action": {
                "page": "\/app\/profile",
                "params": 968
            },
            "read": false,
            "created_at": "2020-02-21 00:41:42",
            "updated_at": "2020-02-21 00:41:42"
        }
    ]
}

HTTP Request

GET /notifications/new

All Notifications

View all notifications

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/notifications/all" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/notifications/all"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/notifications/all',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/notifications/all'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "notifications": [
        {
            "id": 9,
            "user_id": 2584,
            "type": "Friend",
            "message": "Test Message",
            "action": {
                "page": "\/app\/profile",
                "params": 1813
            },
            "read": false,
            "created_at": "2020-02-21 00:41:42",
            "updated_at": "2020-02-21 00:41:42"
        }
    ]
}

HTTP Request

GET /notifications/all

Notification Badge

Notification & friend badge count.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/badges" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/badges"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/badges',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/badges'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "notifications": 1,
    "friends": 0
}

HTTP Request

GET /badges

User-Profile

View Profile

View user profile

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/profile/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/profile/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/profile/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/profile/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "user": {
        "user_id": 2816,
        "image": "https:\/\/s3.us-east-2.amazonaws.com\/favr-images\/user.png",
        "description": null,
        "created_at": "2020-02-21 01:25:29",
        "updated_at": "2020-02-21 01:25:29",
        "past_jobs": [],
        "rating": null,
        "customer_rating": null,
        "friend_status": false,
        "user": {
            "id": 2816,
            "username": "howe.lonzo68",
            "role": "Verified Freelancer",
            "first_name": "Rosalia",
            "last_name": "Tromp",
            "city_id": 4,
            "is_admin": false,
            "organization_id": null,
            "is_organization_admin": false,
            "credit_amount": 0,
            "intercom_id": null,
            "has_chatkit": false,
            "email_verified_at": "2020-02-21 01:25:29",
            "created_at": "2020-02-21 01:25:29",
            "updated_at": "2020-02-21 01:25:29",
            "deleted_at": null,
            "main_marketplace": [],
            "main_proposals": []
        }
    }
}

HTTP Request

GET /profile/{id}

URL Parameters

Parameter Status Description
id required The ID of the user profile.

Update Profile

Update user profile

Example request:

curl -X POST \
    "https://lumen.askfavr.com/profile" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"I am a good worker.","first_name":"John","last_name":"Doe","email":"test_user@email.com","phone":"(901) 555-0125","image":"none","birthday":"01\/01\/2000"}'
const url = new URL(
    "https://lumen.askfavr.com/profile"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "I am a good worker.",
    "first_name": "John",
    "last_name": "Doe",
    "email": "test_user@email.com",
    "phone": "(901) 555-0125",
    "image": "none",
    "birthday": "01\/01\/2000"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/profile',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'I am a good worker.',
            'first_name' => 'John',
            'last_name' => 'Doe',
            'email' => 'test_user@email.com',
            'phone' => '(901) 555-0125',
            'image' => 'none',
            'birthday' => '01/01/2000',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/profile'
payload = {
    "description": "I am a good worker.",
    "first_name": "John",
    "last_name": "Doe",
    "email": "test_user@email.com",
    "phone": "(901) 555-0125",
    "image": "none",
    "birthday": "01\/01\/2000"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /profile

Body Parameters

Parameter Type Status Description
description string optional The profile description of a user.
first_name string optional The first name of the user.
last_name string optional The last name of the user.
email string optional The email of the user.
phone string optional The phone number of the user.
image string optional Base64 encoding of user image.
birthday string optional The user birthday.

User-Referral

Worker Referral Steps

List all of the steps a worker must complete before they can refer other workers.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/remaining-steps" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/remaining-steps"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/remaining-steps',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/remaining-steps'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "steps": {
        "has_bank_account": true,
        "has_profile_photo": true,
        "has_profile_description": true
    }
}

HTTP Request

GET /remaining-steps

All Referrals

Show the list of users referrals.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/referrals" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/referrals"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/referrals',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/referrals'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "referrals": []
}

HTTP Request

GET /referrals

Worker Referral Profile

View a user's referral profile. Note, this is public!

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/referral/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/referral/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/referral/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/referral/john.doe'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": {
        "id": 3048,
        "username": "amalia4088",
        "name": "Wendell Harris",
        "city": {
            "id": 3,
            "city": "Winona",
            "state": "MN",
            "zip": "55987",
            "lat": "44.055389",
            "long": "-91.666351",
            "description": "Picturesque Winona on the bank of the Mississippi River is a premiere college town home to Winona State University and St. Mary's University. Let FAVR help you find help on tasks here.",
            "image": "winona.jpg"
        },
        "profile": {
            "user_id": 3048,
            "image": "t.jpg",
            "description": "te",
            "created_at": "2020-02-22 02:34:16",
            "updated_at": "2020-02-22 02:34:16"
        }
    }
}

HTTP Request

GET /referral/{username}

URL Parameters

Parameter Status Description
username required The username of the user the affiliate.

Save Worker Referral

Save a new referral, send out email as well.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/referral/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"email":"test_user@email.com"}'
const url = new URL(
    "https://lumen.askfavr.com/referral/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "test_user@email.com"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/referral/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'email' => 'test_user@email.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/referral/john.doe'
payload = {
    "email": "test_user@email.com"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /referral/{username}

URL Parameters

Parameter Status Description
username required The username of the user the affiliate.

Body Parameters

Parameter Type Status Description
email string required The email of the referred user.

Customer Referral Profile

View a customer referral profile. This is public!

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/customer-referral/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/customer-referral/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/customer-referral/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/customer-referral/john.doe'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "data": {
        "id": 3049,
        "username": "brenda4833",
        "name": "Joan Bogan",
        "city": {
            "id": 4,
            "city": "Brookings",
            "state": "SD",
            "zip": "57007",
            "lat": "44.311356",
            "long": "-96.798386",
            "description": "A regular city in middle America home to the popular South Dakota State University. Let FAVR help you find help on tasks here.",
            "image": "brookings.jpg"
        },
        "profile": {
            "user_id": 3049,
            "image": "t.jpg",
            "description": "te",
            "created_at": "2020-02-22 02:34:17",
            "updated_at": "2020-02-22 02:34:17"
        }
    }
}

HTTP Request

GET /customer-referral/{username}

URL Parameters

Parameter Status Description
username required The username of the user the affiliate.

Save Customer Referral

Save a customer referral, send out email too.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/customer-referral/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"email":"test_user@email.com"}'
const url = new URL(
    "https://lumen.askfavr.com/customer-referral/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "test_user@email.com"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/customer-referral/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'email' => 'test_user@email.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/customer-referral/john.doe'
payload = {
    "email": "test_user@email.com"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /customer-referral/{username}

URL Parameters

Parameter Status Description
username required The username of the user the affiliate.

Body Parameters

Parameter Type Status Description
email string required The email of the referred user.

User-Report

Report User

Report a user.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/report/user/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"This is a bad user."}'
const url = new URL(
    "https://lumen.askfavr.com/report/user/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "This is a bad user."
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/report/user/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'This is a bad user.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/report/user/1'
payload = {
    "description": "This is a bad user."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /report/user/{id}

URL Parameters

Parameter Status Description
id required The ID of the user.

Body Parameters

Parameter Type Status Description
description string required The description of the report.

Report Job

Report a marketplace job.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/report/main/marketplace/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"description":"This is a bad job."}'
const url = new URL(
    "https://lumen.askfavr.com/report/main/marketplace/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "description": "This is a bad job."
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/report/main/marketplace/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'description' => 'This is a bad job.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/report/main/marketplace/1'
payload = {
    "description": "This is a bad job."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (201):

null

HTTP Request

POST /report/main/marketplace/{id}

URL Parameters

Parameter Status Description
id required The ID of the marketplace.

Body Parameters

Parameter Type Status Description
description string required The description of the report.

User-Settings

Reactivate Account

Reactivate user account.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/restore/john.doe" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/restore/john.doe"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/restore/john.doe',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/restore/john.doe'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "message": "Your account has been restored. Welcome back!"
}

HTTP Request

GET /restore/{token}

URL Parameters

Parameter Status Description
token required The email encrypted token.

Deactivate Account

Deactivate account, allow user to reactivate upon this action.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/deactivate" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/deactivate"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/deactivate',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/deactivate'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

null

HTTP Request

DELETE /deactivate

Delete Account

Soft delete user account.

Example request:

curl -X DELETE \
    "https://lumen.askfavr.com/delete" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"reason":"I was just testing."}'
const url = new URL(
    "https://lumen.askfavr.com/delete"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "reason": "I was just testing."
}

fetch(url, {
    method: "DELETE",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'https://lumen.askfavr.com/delete',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'reason' => 'I was just testing.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/delete'
payload = {
    "reason": "I was just testing."
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('DELETE', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

DELETE /delete

Body Parameters

Parameter Type Status Description
reason string optional optional The reason of the deletion.

Update Password

Update user password.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/password" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"old_password":"secret","new_password":"test"}'
const url = new URL(
    "https://lumen.askfavr.com/password"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "old_password": "secret",
    "new_password": "test"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/password',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'old_password' => 'secret',
            'new_password' => 'test',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/password'
payload = {
    "old_password": "secret",
    "new_password": "test"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /password

Body Parameters

Parameter Type Status Description
old_password string required Original user password.
new_password string required The users new password.

Update Privacy

Update user privacy

Example request:

curl -X POST \
    "https://lumen.askfavr.com/privacy" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"scope":false,"display_rating":false,"display_receipts":true,"display_description":false}'
const url = new URL(
    "https://lumen.askfavr.com/privacy"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "scope": false,
    "display_rating": false,
    "display_receipts": true,
    "display_description": false
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/privacy',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'scope' => false,
            'display_rating' => false,
            'display_receipts' => true,
            'display_description' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/privacy'
payload = {
    "scope": false,
    "display_rating": false,
    "display_receipts": true,
    "display_description": false
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /privacy

Body Parameters

Parameter Type Status Description
scope boolean optional optional Determine user scope.
display_rating boolean optional optional Allow displaying of ratings.
display_receipts boolean optional optional Allow displaying of receipts.
display_description boolean optional optional Allow displaying of description.

Update Notifications

Update user notification

Example request:

curl -X POST \
    "https://lumen.askfavr.com/notifications" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"email_notifications":false,"sms_notifications":false,"push_notifications":false}'
const url = new URL(
    "https://lumen.askfavr.com/notifications"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email_notifications": false,
    "sms_notifications": false,
    "push_notifications": false
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/notifications',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'json' => [
            'email_notifications' => false,
            'sms_notifications' => false,
            'push_notifications' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/notifications'
payload = {
    "email_notifications": false,
    "sms_notifications": false,
    "push_notifications": false
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (204):

null

HTTP Request

POST /notifications

Body Parameters

Parameter Type Status Description
email_notifications boolean optional optional Update email notifications.
sms_notifications boolean optional optional Update sms notifications.
push_notifications boolean optional optional Update push notifications.

View Settings

View user settings

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/settings" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/settings"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/settings',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/settings'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "settings": {
        "user_id": 3295,
        "scope": "Public",
        "display_rating": true,
        "display_receipts": true,
        "display_description": true,
        "email_notifications": true,
        "sms_notifications": true,
        "push_notifications": true,
        "created_at": "2020-02-22 05:07:32",
        "updated_at": "2020-02-22 05:07:32"
    }
}

HTTP Request

GET /settings

general

/categories

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/categories" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/categories"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/categories',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/categories'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "categories": [
        {
            "id": 1,
            "name": "Assembly",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/gear.png",
            "active": true
        },
        {
            "id": 2,
            "name": "Cleaning & Housekeeping",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/mop.png",
            "active": true
        },
        {
            "id": 3,
            "name": "Custom Task",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/edit-favr.png",
            "active": true
        },
        {
            "id": 4,
            "name": "Junk Removal",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/recycling.png",
            "active": true
        },
        {
            "id": 5,
            "name": "Lawn & Yard",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/lawnmower.png",
            "active": true
        },
        {
            "id": 6,
            "name": "Moving & Packing",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/trolley.png",
            "active": true
        },
        {
            "id": 7,
            "name": "Seasonal",
            "icon_image": "https:\/\/favr-images.s3.us-east-2.amazonaws.com\/categories\/leaf.png",
            "active": true
        }
    ]
}

HTTP Request

GET /categories

/sub-categories

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/sub-categories" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/sub-categories"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/sub-categories',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/sub-categories'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "sub-categories": []
}

HTTP Request

GET /sub-categories

View all reports.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/reports" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/reports"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/reports',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/reports'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /admin/reports

More details on a specific report.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/report/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/report/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/report/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/report/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /admin/report/{id}

Mark report as resolved.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/resolved/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/resolved/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/resolved/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/resolved/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /admin/resolved/{id}

Mark report as unresolved.

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/admin/unresolved/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/unresolved/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/admin/unresolved/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/unresolved/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /admin/unresolved/{id}

Delete a specific report.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/admin/report/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/admin/report/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/admin/report/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/admin/report/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers)
response.json()

HTTP Request

POST /admin/report/{id}

Reset Password Form

The form view for resetting your password. (will be moved to be in app soon)

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/reset/1?id=1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/reset/1"
);

let params = {
    "id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/reset/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'id' => '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/reset/1'
params = {
  'id': '1'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):

{}

HTTP Request

GET /reset/{token}

Query Parameters

Parameter Status Description
id optional numeric required The id of the password .

Reset Password

Save new password.

Example request:

curl -X POST \
    "https://lumen.askfavr.com/reset/9moNQVvdbDMHSqIWzb7X7Pwt8JJyX5OL?id=1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}" \
    -d '{"new_password":"test"}'
const url = new URL(
    "https://lumen.askfavr.com/reset/9moNQVvdbDMHSqIWzb7X7Pwt8JJyX5OL"
);

let params = {
    "id": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "new_password": "test"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://lumen.askfavr.com/reset/9moNQVvdbDMHSqIWzb7X7Pwt8JJyX5OL',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
        'query' => [
            'id' => '1',
        ],
        'json' => [
            'new_password' => 'test',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/reset/9moNQVvdbDMHSqIWzb7X7Pwt8JJyX5OL'
payload = {
    "new_password": "test"
}
params = {
  'id': '1'
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()

Example response (204):

null

HTTP Request

POST /reset/{token}

URL Parameters

Parameter Status Description
token required The password reset token.

Query Parameters

Parameter Status Description
id optional numeric required The id of the password .

Body Parameters

Parameter Type Status Description
new_password string required The users new password.

View current friends

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friends" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friends"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friends',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friends'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friends

Send friend request

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/send/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/send/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/send/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/send/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/send/{id}

Accept a user as friend

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/accept/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/accept/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/accept/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/accept/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/accept/{id}

Deny a friend request

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/deny/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/deny/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/deny/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/deny/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/deny/{id}

Unfriend user

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/delete/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/delete/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/delete/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/delete/1'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/delete/{id}

View new friend requests

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/requests" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/requests"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/requests',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/requests'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/requests

Search for users

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/search" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/search"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/search',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/search'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /search

Recommend friends

Example request:

curl -X GET \
    -G "https://lumen.askfavr.com/friend/recommend" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {token}"
const url = new URL(
    "https://lumen.askfavr.com/friend/recommend"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://lumen.askfavr.com/friend/recommend',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://lumen.askfavr.com/friend/recommend'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{token}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (401):

{
    "message": "Unauthorized"
}

HTTP Request

GET /friend/recommend