curl --request POST \
--url https://api.orelys.io/v1/osint/username \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"username": "johndoe"
}
'import requests
url = "https://api.orelys.io/v1/osint/username"
payload = { "username": "johndoe" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({username: 'johndoe'})
};
fetch('https://api.orelys.io/v1/osint/username', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"module": "username",
"query": "johndoe",
"extended": false,
"count": 2,
"results": [
{
"source": "steam",
"label": "Steam",
"extended": false,
"data": {
"found": true,
"rows": [
{
"label": "Name",
"value": "John Doe"
},
{
"label": "Profile",
"value": "https://steamcommunity.com/id/johndoe"
},
{
"label": "Country",
"value": "GB"
}
],
"lists": [
{
"label": "Games",
"items": [
"Counter-Strike 2",
"Dota 2"
]
}
]
}
},
{
"source": "reddit",
"label": "Reddit",
"extended": false,
"data": {
"found": true,
"rows": [
{
"label": "Karma",
"value": "1824"
},
{
"label": "Created",
"value": "2016-11-02"
}
],
"lists": []
}
}
],
"sources": {
"checked": 185,
"found": 2,
"not_found": 176,
"failed": 7
},
"cost": 1,
"charged": true,
"credits": {
"remaining": 37
}
}{
"error": {
"code": "invalid_request",
"message": "The request has invalid fields.",
"details": [
"A username is 4 to 40 characters (letters, digits, underscores, dots, dashes). Nothing was charged."
]
}
}{
"error": {
"code": "invalid_api_key",
"message": "This API key is not valid. It may have been regenerated or revoked."
}
}{
"error": {
"code": "insufficient_credits",
"message": "This search costs 4 credits and the balance is 2. Credits are not on sale on orelys.io yet: write to support@orelys.io."
}
}{
"error": {
"code": "plan_required",
"message": "API access comes with the Professional and Enterprise plans. This account is on Starter."
}
}{
"error": {
"code": "payload_too_large",
"message": "The request body is larger than 16 KB."
}
}{
"error": {
"code": "unsupported_media_type",
"message": "Send the body as JSON with `Content-Type: application/json`."
}
}{
"error": {
"code": "rate_limited",
"message": "An account on the Professional plan can make at most 60 searches a minute."
}
}{
"error": {
"code": "sources_unavailable",
"message": "No source could be reached. Try again later."
}
}{
"error": {
"code": "module_unavailable",
"message": "This module is temporarily unavailable."
}
}Username search
Look a username up on the sources of the Username module, several at a time: public platforms, plus the extended sources when extended is true. Returns the sources that found an account. Costs 1 credit, 4 with the extended sources; nothing is charged when no source finds anything.
curl --request POST \
--url https://api.orelys.io/v1/osint/username \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"username": "johndoe"
}
'import requests
url = "https://api.orelys.io/v1/osint/username"
payload = { "username": "johndoe" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({username: 'johndoe'})
};
fetch('https://api.orelys.io/v1/osint/username', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"module": "username",
"query": "johndoe",
"extended": false,
"count": 2,
"results": [
{
"source": "steam",
"label": "Steam",
"extended": false,
"data": {
"found": true,
"rows": [
{
"label": "Name",
"value": "John Doe"
},
{
"label": "Profile",
"value": "https://steamcommunity.com/id/johndoe"
},
{
"label": "Country",
"value": "GB"
}
],
"lists": [
{
"label": "Games",
"items": [
"Counter-Strike 2",
"Dota 2"
]
}
]
}
},
{
"source": "reddit",
"label": "Reddit",
"extended": false,
"data": {
"found": true,
"rows": [
{
"label": "Karma",
"value": "1824"
},
{
"label": "Created",
"value": "2016-11-02"
}
],
"lists": []
}
}
],
"sources": {
"checked": 185,
"found": 2,
"not_found": 176,
"failed": 7
},
"cost": 1,
"charged": true,
"credits": {
"remaining": 37
}
}{
"error": {
"code": "invalid_request",
"message": "The request has invalid fields.",
"details": [
"A username is 4 to 40 characters (letters, digits, underscores, dots, dashes). Nothing was charged."
]
}
}{
"error": {
"code": "invalid_api_key",
"message": "This API key is not valid. It may have been regenerated or revoked."
}
}{
"error": {
"code": "insufficient_credits",
"message": "This search costs 4 credits and the balance is 2. Credits are not on sale on orelys.io yet: write to support@orelys.io."
}
}{
"error": {
"code": "plan_required",
"message": "API access comes with the Professional and Enterprise plans. This account is on Starter."
}
}{
"error": {
"code": "payload_too_large",
"message": "The request body is larger than 16 KB."
}
}{
"error": {
"code": "unsupported_media_type",
"message": "Send the body as JSON with `Content-Type: application/json`."
}
}{
"error": {
"code": "rate_limited",
"message": "An account on the Professional plan can make at most 60 searches a minute."
}
}{
"error": {
"code": "sources_unavailable",
"message": "No source could be reached. Try again later."
}
}{
"error": {
"code": "module_unavailable",
"message": "This module is temporarily unavailable."
}
}"extended": true. Nothing is charged when no source finds anything. How credits work →
Authorizations
Your API key, from https://orelys.io/account/api. It starts with orl_ (keys made before the rename start with fly_ and keep working). X-API-Key: <key> works too. A key in the URL is refused.
Body
Response
The sources that found something. charged tells whether credits were taken.
username, email The username or email address searched, after normalisation.
Whether the extended sources were asked.
Number of items in results.
Only the sources that found something.
Show child attributes
Show child attributes
What happened across every source asked.
Show child attributes
Show child attributes
Credits the search costs: 1, or 4 with the extended sources.
Whether the credits were taken. false when nothing was found, within a daily allowance (your daily quota, at least 10).
Show child attributes
Show child attributes
Only present when results were left out because they contain a removed selector.

