Introduction
Welcome to the Ful.io API! Use our APIs to quickly identify technology stacks behind websites, discover relevant email addresses, and effortlessly manage your account subscription and credits.
We provide ready-to-use examples in Shell, Python, JavaScript, and Ruby. Check out the code snippets in the panel to your right, and seamlessly switch languages using the tabs above.
You're all set—let's get started with Ful.io!
Authentication
To authorize, use this code:
require "httparty"
response = HTTParty.get(
"https://api.ful.io/your-endpoint",
query: { api_key: "<YOUR_API_KEY>" }
)
puts response.body
import requests
resp = requests.get(
"https://api.ful.io/your-endpoint",
params={"api_key": "<YOUR_API_KEY>"}
)
print(resp.json())
# Please pass your endpoint correctly.
curl --location \
"https://api.ful.io/your-endpoint?api_key=<YOUR_API_KEY>"
// Please pass your endpoint correctly.
// using axios
import axios from "axios";
axios.get("https://api.ful.io/your-endpoint", {
params: { api_key: "<YOUR_API_KEY>" }
})
.then(res => console.log(res.data));
Make sure to replace
YOUR_API_KEY
with your API key.
Ful.io uses API keys to allow access to the API. You can view your API key at dashboard portal - Security.
Ful.io APIs require your API key as a query parameter in all requests:
?api_key=ThisIsYourAPIKey
Lookups
Technology Lookup
require 'httparty'
tech = HTTParty.get(
"https://api.ful.io/api/domain-search",
query: { api_key: "<YOUR_API_KEY>", domain: "example.com" }
)
puts tech.body
import requests
resp = requests.get(
"https://api.ful.io/api/domain-search",
params={"api_key": "<YOUR_API_KEY>", "domain": "example.com"}
)
print(resp.json())
curl --location \
"https://api.ful.io/api/domain-search?api_key=<YOUR_API_KEY>&domain=example.com"
const axios = require('axios');
axios.get('https://api.ful.io/api/domain-search', {
params: { api_key: '<YOUR_API_KEY>', domain: 'example.com' }
})
.then(res => console.log(res.data));
The above command returns JSON structured like this:
{
"domain_name": "example.com",
"technologies": [
{
"category_slug": "Mobile",
"category_name": "Mobile",
"technologies": [
{
"name": "Viewport Meta",
"description": "This page uses the viewport meta tag which means the content may be optimized for mobile content.",
"icon": "Viewport Meta.png",
"website": "https://developers.google.com/speed/docs/insights/ConfigureViewport",
"technology_slug": "viewport-meta"
}
]
},
{
"category_slug": "Documentation",
"category_name": "Documentation",
"technologies": [
{
"name": "HTML5 DocType",
"description": "A DOCTYPE is a required preamble.",
"icon": "HTML5 DocType.png",
"website": "https://html.spec.whatwg.org/multipage/syntax.html#the-doctype",
"technology_slug": "html5-doctype"
}
]
}
]
}
This endpoint retrieves all technologies associated with a website name.
HTTP Request
GET https://api.ful.io/api/domain-search
Query Parameters
Parameter | Description |
---|---|
api_key | You have to paste the API key which has been assigned to you specifically. |
domain | Enter the name of the website you want to lookup the technologies for. |
Email Lookup
require 'httparty'
email = HTTParty.get(
"https://api.ful.io/api/email-search-website",
query: { api_key: "<YOUR_API_KEY>", email: "example.com" }
)
puts email.body
import requests
resp = requests.get(
"https://api.ful.io/api/email-search-website",
params={"api_key": "<YOUR_API_KEY>", "email": "example.com"}
)
print(resp.json())
curl --location \
"https://api.ful.io/api/email-search-website?api_key=<YOUR_API_KEY>&email=example.com"
const axios = require('axios');
axios.get('https://api.ful.io/api/email-search-website', {
params: { api_key: '<YOUR_API_KEY>', email: 'example.com' }
})
.then(res => console.log(res.data));
The above command returns JSON structured like this:
{
"domain": "example.com",
"total unique emails found": 2,
"total email occurrences": 10,
"results_found": [
{
"Email": "abc@example.com",
"URLs": [
"https://ful.io/technology/analytics/moat",
"https://ful.io/technology/cms/wolf-cms",
"https://ful.io/technology/cms/solidpixels",
"https://ful.io/technology/analytics/facebook-pixel"
]
},
{
"Email": "xyz@example.com",
"URLs": [
"https://ful.io/technology/cms/pyrocms",
"https://ful.io/technology/cms/flazio",
"https://ful.io/technology/cms/indexhibit",
"https://ful.io/technology/tag-managers",
"https://ful.io/technology/cms/chameleon-system",
"https://ful.io/technology/widgets/facebook"
]
}
]
}
This endpoint retrieves all the emails (along with the source) associated with a website name.
HTTP Request
GET https://api.ful.io/api/email-search-website
URL Parameters
Parameter | Description |
---|---|
api_key | You have to paste the API key which has been assigned to you specifically. |
Enter the name of the website you want to lookup the emails for. |
Memberships & Credits
require 'httparty'
subs = HTTParty.get(
"https://api.ful.io/user/api/subscription-details",
query: { api_key: "<YOUR_API_KEY>" }
)
puts subs.body
import requests
resp = requests.get(
"https://api.ful.io/user/api/subscription-details",
params={"api_key": "<YOUR_API_KEY>"}
)
print(resp.json())
curl --location \
"https://api.ful.io/user/api/subscription-details?api_key=<YOUR_API_KEY>"
const axios = require('axios');
axios.get('https://api.ful.io/user/api/subscription-details', {
params: { api_key: '<YOUR_API_KEY>' }
})
.then(res => console.log(res.data));
The above command returns JSON structured like this:
{
"user_membership": {
"id": 8,
"user": 2,
"membership": {
"id": 2,
"name": "Individual",
"credit_limit": 0,
"logins": 2,
"tech_lookup_credits_limit": 5000,
"email_lookup_credits_limit": 5000,
"api_credits_limit": 250,
"lead_generation_credtis_limit": 5
},
"membership_id": 2,
"membership_name": "Individual",
"start_date": "2025-04-08T16:30:16.156305Z",
"end_date": "2025-05-08T16:30:16.155893Z",
"remaining_credits": 0,
"tech_lookup_remaining_credits": 4972,
"email_lookup_remaining_credits": 4977,
"api_remaining_credits": 240,
"lead_generation_remaining_credtis": 1,
"is_active": true
}
}
This endpoint retrieves all the subscription details of your account including the remaining & used credits.
HTTP Request
GET https://api.ful.io/user/api/subscription-details
URL Parameters
Parameter | Description |
---|---|
api_key | You have to paste the API key which has been assigned to you specifically. |
Errors
Ful.io API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The API requested is hidden for administrators only. |
404 | Not Found -- The specified information could not be found. |
405 | Method Not Allowed -- You tried to access a API with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The response requested has been removed from our servers. |
429 | Too Many Requests -- You're requesting too many response! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |