AgnicPay

Transactions

View and search your payment history

Transactions

The Transactions API returns your payment history with filtering, pagination, and statistics.

Endpoint

GET /api/transactions

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Items per page (max: 100)
statusstring-Filter by status: success, failed, pending
searchstring-Search by endpoint URL
networkstring-Filter by network
startDatestring-Filter from date (ISO 8601)
endDatestring-Filter to date (ISO 8601)

Response

{
  "transactions": [
    {
      "id": "tx_abc123",
      "amount_usd": 0.25,
      "network": "base-sepolia",
      "endpoint": "https://api.example.com/generate",
      "timestamp": "2025-01-09T12:00:00Z",
      "status": "success",
      "scheme": "exact",
      "tx_hash": "0x1234..."
    }
  ],
  "pagination": {
    "currentPage": 1,
    "totalPages": 5,
    "totalCount": 100,
    "limit": 20
  },
  "stats": {
    "totalSpent": 25.50,
    "successRate": 95.0,
    "transactionCount": 100
  }
}

Transaction Object

FieldTypeDescription
idstringUnique transaction ID
amount_usdnumberAmount paid in USD
networkstringBlockchain network
endpointstringAPI endpoint paid
timestampstringISO 8601 timestamp
statusstringsuccess, failed, or pending
schemestringPayment scheme used
tx_hashstringBlockchain transaction hash

Pagination Object

FieldTypeDescription
currentPagenumberCurrent page number
totalPagesnumberTotal number of pages
totalCountnumberTotal transaction count
limitnumberItems per page

Stats Object

FieldTypeDescription
totalSpentnumberTotal USD spent
successRatenumberPercentage of successful transactions
transactionCountnumberTotal number of transactions

Examples

Get Recent Transactions

curl https://api.agnic.ai/api/transactions \
  -H "X-Agnic-Token: agnic_tok_YOUR_TOKEN"

Filter by Status

curl "https://api.agnic.ai/api/transactions?status=success" \
  -H "X-Agnic-Token: agnic_tok_YOUR_TOKEN"

Search by Endpoint

curl "https://api.agnic.ai/api/transactions?search=openai" \
  -H "X-Agnic-Token: agnic_tok_YOUR_TOKEN"

Paginate Results

curl "https://api.agnic.ai/api/transactions?page=2&limit=50" \
  -H "X-Agnic-Token: agnic_tok_YOUR_TOKEN"

Filter by Date Range

curl "https://api.agnic.ai/api/transactions?startDate=2025-01-01&endDate=2025-01-31" \
  -H "X-Agnic-Token: agnic_tok_YOUR_TOKEN"

Python Example

import requests
 
def get_transactions(page=1, limit=20, status=None):
    params = {"page": page, "limit": limit}
    if status:
        params["status"] = status
 
    response = requests.get(
        "https://api.agnic.ai/api/transactions",
        headers={"X-Agnic-Token": "agnic_tok_YOUR_TOKEN"},
        params=params
    )
 
    return response.json()
 
# Get all successful transactions
data = get_transactions(status="success")
 
print(f"Total spent: ${data['stats']['totalSpent']}")
print(f"Success rate: {data['stats']['successRate']}%")
 
for tx in data["transactions"]:
    print(f"{tx['timestamp']}: ${tx['amount_usd']} to {tx['endpoint']}")

JavaScript Example

async function getTransactions(options = {}) {
  const params = new URLSearchParams({
    page: options.page || 1,
    limit: options.limit || 20,
    ...(options.status && { status: options.status }),
    ...(options.search && { search: options.search })
  });
 
  const response = await fetch(
    `https://api.agnic.ai/api/transactions?${params}`,
    {
      headers: {
        'X-Agnic-Token': 'agnic_tok_YOUR_TOKEN'
      }
    }
  );
 
  return response.json();
}
 
// Get recent transactions
const data = await getTransactions({ limit: 10 });
 
console.log(`Total spent: $${data.stats.totalSpent}`);
data.transactions.forEach(tx => {
  console.log(`${tx.timestamp}: $${tx.amount_usd}`);
});

Monitoring Spending

Daily Spending Report

from datetime import datetime, timedelta
import requests
 
def get_daily_spending():
    today = datetime.now().date()
    yesterday = today - timedelta(days=1)
 
    response = requests.get(
        "https://api.agnic.ai/api/transactions",
        headers={"X-Agnic-Token": "agnic_tok_YOUR_TOKEN"},
        params={
            "startDate": str(yesterday),
            "endDate": str(today),
            "limit": 100
        }
    )
 
    data = response.json()
    return data["stats"]["totalSpent"]
 
print(f"Spent yesterday: ${get_daily_spending()}")

Top Endpoints by Spend

from collections import defaultdict
 
def get_top_endpoints():
    response = requests.get(
        "https://api.agnic.ai/api/transactions",
        headers={"X-Agnic-Token": "agnic_tok_YOUR_TOKEN"},
        params={"limit": 100, "status": "success"}
    )
 
    spending = defaultdict(float)
    for tx in response.json()["transactions"]:
        spending[tx["endpoint"]] += tx["amount_usd"]
 
    return sorted(spending.items(), key=lambda x: x[1], reverse=True)
 
for endpoint, amount in get_top_endpoints()[:5]:
    print(f"${amount:.2f} - {endpoint}")

On this page