Quick Start
Extract structured data from any website. Use AGI agents to scrape product catalogs, tables, and search results.Installation
- JavaScript
- Python
- HTTPie
Copy
npm install agi
Copy
pip install pyagi
Copy
# macOS
brew install httpie
# Linux
apt install httpie
# Windows
pip install httpie
Extract Table Data
Extract data from HTML tables.- JavaScript
- Python
- HTTPie
Copy
import { AGIClient } from 'agi';
const client = new AGIClient({ apiKey: 'your_api_key' });
const session = await client.createSession('agi-0-fast');
try {
const tableData = await session.runTask(`
Extract table data from: ${url}
Extract all rows and columns.
Preserve data types (numbers, dates, text).
Return as JSON:
{"headers": ["Column1", "Column2"], "rows": [["value1", "value2"]]}
`);
} finally {
await session.delete();
}
Copy
from pyagi import AGIClient
client = AGIClient(api_key="your_api_key")
with client.session("agi-0-fast") as session:
table_data = session.run_task(f"""
Extract table data from: {url}
Extract all rows and columns.
Preserve data types (numbers, dates, text).
Return as JSON:
{{"headers": ["Column1", "Column2"], "rows": [["value1", "value2"]]}}
""")
Copy
export AGI_API_KEY="your_api_key"
SESSION=$(http POST https://api.agi.tech/v1/sessions \
Authorization:"Bearer $AGI_API_KEY" \
agent_name=agi-0-fast | jq -r '.session_id')
http POST https://api.agi.tech/v1/sessions/$SESSION/message \
Authorization:"Bearer $AGI_API_KEY" \ "{\"message\":\"Extract table data from: $url. Extract all rows and columns. Preserve data types (numbers, dates, text). Return as JSON: {\\\"headers\\\": [\\\"Column1\\\", \\\"Column2\\\"], \\\"rows\\\": [[\\\"value1\\\", \\\"value2\\\"]]}\"}"
while true; do
STATUS=$(http GET https://api.agi.tech/v1/sessions/$SESSION/status \
Authorization:"Bearer $AGI_API_KEY" | jq -r '.status')
if [ "$STATUS" = "finished" ]; then
http GET https://api.agi.tech/v1/sessions/$SESSION/messages \
Authorization:"Bearer $AGI_API_KEY" | jq '.messages[] | select(.type=="DONE")'
break
fi
sleep 2
done
http DELETE https://api.agi.tech/v1/sessions/$SESSION \
-H "Authorization: Bearer $AGI_API_KEY"
Extract Search Results
Extract search results from search engines.- JavaScript
- Python
- HTTPie
Copy
const session = await client.createSession('agi-0-fast');
try {
const results = await session.runTask(`
Search for: ${query}
Extract ${numResults} results.
For each result, extract:
- Title
- URL
- Description
- Position/rank
Return as JSON array sorted by rank.
`);
} finally {
await session.delete();
}
Copy
with client.session("agi-0-fast") as session:
results = session.run_task(f"""
Search for: {query}
Extract {num_results} results.
For each result, extract:
- Title
- URL
- Description
- Position/rank
Return as JSON array sorted by rank.
""")
Copy
export AGI_API_KEY="your_api_key"
SESSION=$(http POST https://api.agi.tech/v1/sessions \
Authorization:"Bearer $AGI_API_KEY" \
agent_name=agi-0-fast | jq -r '.session_id')
http POST https://api.agi.tech/v1/sessions/$SESSION/message \
Authorization:"Bearer $AGI_API_KEY" \ "{\"message\":\"Search for: $query. Extract $num_results results. For each result, extract: Title, URL, Description, Position/rank. Return as JSON array sorted by rank.\"}"
while true; do
STATUS=$(http GET https://api.agi.tech/v1/sessions/$SESSION/status \
Authorization:"Bearer $AGI_API_KEY" | jq -r '.status')
if [ "$STATUS" = "finished" ]; then
http GET https://api.agi.tech/v1/sessions/$SESSION/messages \
Authorization:"Bearer $AGI_API_KEY" | jq '.messages[] | select(.type=="DONE")'
break
fi
sleep 2
done
http DELETE https://api.agi.tech/v1/sessions/$SESSION \
-H "Authorization: Bearer $AGI_API_KEY"