Fake Bookings. Real Losses
Automated scripts can hold seats, block inventory, and cause fake availability — frustrating real customers and damaging revenueA
A
F
F
2
2
0
0
3
3
P
P
A
A
R
R
I
I
S
S
R
R
O
O
M
M
E
E
B
A
A
B
O
V
V
O
O
A
A
O
K
I
I
K
E
L
L
E
D
A
A
D
B
B
L
L
E
E
L
L
H
H
3
3
4
4
2
2
N
N
E
E
W
W
Y
Y
O
O
R
R
K
K
D
D
U
U
B
B
A
A
I
I
B
A
A
B
O
V
V
O
O
A
A
O
K
I
I
K
E
L
L
E
D
A
A
D
B
B
L
L
E
E
U
U
A
A
4
4
0
0
6
6
C
C
H
H
I
I
C
C
A
A
G
G
O
O
M
M
I
I
A
A
M
M
I
I
B
A
A
B
O
V
V
O
O
A
A
O
K
I
I
K
E
L
L
E
D
A
A
D
B
B
L
L
E
E
E
E
K
K
7
7
0
0
9
9
D
D
U
U
B
B
A
A
I
I
N
N
A
A
I
I
R
R
O
O
B
B
I
I
B
A
A
B
O
V
V
O
O
A
A
O
K
I
I
K
E
L
L
E
D
A
A
D
B
B
L
L
E
E
B
B
A
A
1
1
7
7
8
8
L
L
O
O
N
N
D
D
O
O
N
N
N
N
E
E
W
W
Y
Y
O
O
R
R
K
K
B
A
A
B
O
V
V
O
O
A
A
O
K
I
I
K
E
L
L
E
D
A
A
D
B
B
L
L
E
E
Don’t Let Competitors Stay One Step Ahead
Automated scraping lets competitors react faster to your prices, appearing first in search results. Protect your data and maintain your competitive edge.YorSite.com
BOSBOSTONOctober 1205:50 PM
TUSTUCSONOctober 1207:40 AM
Search.com
YourSite.com$587
AviaTrip.com$600
ClickTrip.eu$595
Protect Partners from Review Sabotage
Fake negative review attacks hit your partners first — and your platform next. Keep both safe with real-time detection and protectionSunset Hotel
Your promos are a Target
When bots guess promo codes at scale, your discounts stop driving growth and start creating losses. Lock down codes with rate limits, per-request tokens and abuse detection.Promocode
|
This promo code is valid until the 28th of this month
How it works?
Every request is protected with a one-time token generated by BotBye!mysite.com
BotBye Client-side Integration
Secured Request
Challenges Runner
api.botbye.com
mysite.com (Backend)
BotBye Server-side Integration
Your Logic With Response
Start using bot protection on the client-side
Integrate BotBye easily on the client side via the JS Tag or NPM integration.Read the docsNPM
JS Tag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import {
initChallenges,
runChallenge
} from "botbye-client";
initChallenges({
// Project Client Key
clientKey: "00000000-0000-...",
})
// Add token to request
const makeSomeCall = async () => {
const token = await runChallenge();
return fetch(
'https://somedomain.com',
{
method: "POST",
headers: {
"BotBye-Token": token
}
})
}
Back-End API Response
Make decision-making easier — BotBye will return an response, and you can automatically approve or decline requests in real time to keep your process seamless and secure.Read the docs1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"reqId": "f77b2abd-c5d7-....",
"result": {
// Bot detected
"isAllowed": false
},
"error": null,
// Project > More > API Extra Data
"extraData": {
"ip": "192.168.1.1",
"asn": "AMAZON-AES",
"country": "USA",
"browser": "Android WebView",
"browserVersion": "66.0",
"deviceName": "Galaxy S9",
"deviceType": "Mobile Phone",
"deviceCodeName": "SM-G960F",
"platform": "Android OS",
"platformVersion": "8.0"
}
}