{
  "name": "AgentStall ZA",
  "summary": "Pay-per-call African and global data for AI agents. Public holidays and business days for 100+ countries, domain lookups (RDAP/WHOIS, DNS, email security, phishing signals) and exchange rates for African and other currencies. Across South Africa, Nigeria, Kenya, Egypt, Ghana, Morocco, Rwanda, Uganda, Tanzania, Mauritius and Botswana: verified holiday calendars, data-breach reporting obligations with computed deadlines, official-domain and phishing checks, and email-spoofing scorecards. South Africa also: government tenders, SARS deadlines, school terms, SARB rates and ID, tax, company, bank and phone checks. No sign-up, no API key: pay each call with x402.",
  "payment": {
    "protocol": "x402 v2",
    "scheme": "exact",
    "network": "eip155:8453",
    "networkName": "Base mainnet",
    "asset": "USDC",
    "assetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xA5b46001f5fAAfA9d7bB4efeEA6C724d52567a02",
    "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402"
  },
  "discovery": {
    "llms": "https://agentstall.padawanconsulting.com/llms.txt",
    "openapi": "https://agentstall.padawanconsulting.com/openapi.json",
    "mcp": "https://agentstall.padawanconsulting.com/mcp",
    "wellKnown": "https://agentstall.padawanconsulting.com/.well-known/x402"
  },
  "products": [
    {
      "id": "holidays",
      "group": "Calendar",
      "title": "Public holidays for 100+ countries, with verified calendars for South Africa, Kenya, Nigeria, Egypt and 7 more",
      "description": "Public holidays for a year in 100+ countries (any ISO country code). South Africa, Nigeria, Kenya, Egypt, Ghana, Morocco, Rwanda, Uganda, Tanzania, Mauritius and Botswana use AgentStall's own verified calendars: observed (substitute) days, Islamic holidays as declared and days moved by decree, each labelled confirmed, reported or estimated. Other countries use the Nager.Date open dataset. Useful for scheduling, payroll, delivery dates and deadlines.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/holidays",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/holidays?year=2026&country=KE"
      },
      "mcpTool": "za_public_holidays",
      "priceUsd": "0.001",
      "priceAtomic": "1000",
      "params": [
        {
          "name": "year",
          "type": "integer",
          "description": "Calendar year (South Africa 1995-2100; curated African countries 2026-2027; other countries 2000-2040)",
          "required": true,
          "example": "2026"
        },
        {
          "name": "country",
          "type": "string",
          "description": "ISO country code, e.g. ZA (default), KE, NG, EG, GH, US, GB, DE, IN, AE. Verified calendars for ZA, NG, KE, EG, GH, MA, RW, UG, TZ, MU and BW",
          "required": false,
          "example": "KE"
        }
      ],
      "exampleResult": {
        "country": "KE",
        "year": 2026,
        "count": 12,
        "holidays": [
          {
            "date": "2026-05-27",
            "name": "Idd-ul-Azha",
            "type": "religious",
            "status": "confirmed"
          }
        ]
      }
    },
    {
      "id": "business-day",
      "group": "Calendar",
      "title": "Is it a business day? Working-day check for 100+ countries incl. South Africa, Kenya, Nigeria, Egypt",
      "description": "Business day check for a date in 100+ countries (any ISO country code): says whether it is a working day, why not (weekend or which public holiday), and the next and previous business days. Verified calendars for South Africa, Nigeria, Kenya, Egypt (Friday-Saturday weekend), Ghana, Morocco, Rwanda, Uganda, Tanzania, Mauritius and Botswana; local weekends such as Friday-Saturday in the Gulf. Useful for payment, settlement and delivery dates.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/business-day",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/business-day?date=2026-11-04&country=KE"
      },
      "mcpTool": "za_is_business_day",
      "priceUsd": "0.001",
      "priceAtomic": "1000",
      "params": [
        {
          "name": "date",
          "type": "string",
          "description": "Date in YYYY-MM-DD",
          "required": true,
          "example": "2026-11-04"
        },
        {
          "name": "country",
          "type": "string",
          "description": "ISO country code, e.g. ZA (default), KE, NG, EG, GH, US, GB, DE, IN, AE. Verified calendars for ZA, NG, KE, EG, GH, MA, RW, UG, TZ, MU and BW",
          "required": false,
          "example": "KE"
        }
      ],
      "exampleResult": {
        "date": "2026-11-04",
        "weekday": "Wednesday",
        "isBusinessDay": false,
        "reason": "public holiday: Local Government Elections",
        "nextBusinessDay": "2026-11-05",
        "previousBusinessDay": "2026-11-03"
      }
    },
    {
      "id": "add-business-days",
      "group": "Calendar",
      "title": "Add business days to a date: 100+ countries incl. South Africa, Kenya, Nigeria, Egypt",
      "description": "Adds or subtracts working days from a date in 100+ countries (any ISO country code), skipping the local weekend and public holidays, and lists the holidays skipped. Verified calendars for South Africa and 10 African countries (Egypt has a Friday-Saturday weekend). Useful for payment terms such as 'within 5 business days', notice periods, delivery estimates and legal or contractual deadlines.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/add-business-days",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/add-business-days?start=2026-12-23&days=5&country=KE"
      },
      "mcpTool": "za_add_business_days",
      "priceUsd": "0.002",
      "priceAtomic": "2000",
      "params": [
        {
          "name": "start",
          "type": "string",
          "description": "Start date, YYYY-MM-DD",
          "required": true,
          "example": "2026-12-23"
        },
        {
          "name": "days",
          "type": "integer",
          "description": "Business days to add, -1000 to 1000",
          "required": true,
          "example": "5"
        },
        {
          "name": "country",
          "type": "string",
          "description": "ISO country code, e.g. ZA (default), KE, NG, EG, GH, US, GB, DE, IN, AE. Verified calendars for ZA, NG, KE, EG, GH, MA, RW, UG, TZ, MU and BW",
          "required": false,
          "example": "KE"
        }
      ],
      "exampleResult": {
        "start": "2026-12-23",
        "businessDaysAdded": 5,
        "result": "2026-12-31",
        "resultWeekday": "Thursday",
        "holidaysSkipped": [
          {
            "date": "2026-12-25",
            "name": "Christmas Day"
          }
        ]
      }
    },
    {
      "id": "count-business-days",
      "group": "Calendar",
      "title": "Count business days between two dates: 100+ countries incl. South Africa, Kenya, Nigeria, Egypt",
      "description": "Counts the working days between two dates in 100+ countries (any ISO country code), excluding the local weekend and public holidays, and lists the holidays excluded. Verified calendars for South Africa, Nigeria, Kenya, Egypt, Ghana, Morocco, Rwanda, Uganda, Tanzania, Mauritius and Botswana. Useful for SLAs, turnaround times, leave calculations and deadlines measured in business days.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/count-business-days",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/count-business-days?from=2026-12-01&to=2026-12-31&country=KE"
      },
      "mcpTool": "za_count_business_days",
      "priceUsd": "0.002",
      "priceAtomic": "2000",
      "params": [
        {
          "name": "from",
          "type": "string",
          "description": "Start date, YYYY-MM-DD (exclusive)",
          "required": true,
          "example": "2026-12-01"
        },
        {
          "name": "to",
          "type": "string",
          "description": "End date, YYYY-MM-DD (inclusive), within 5 years of 'from'",
          "required": true,
          "example": "2026-12-31"
        },
        {
          "name": "country",
          "type": "string",
          "description": "ISO country code, e.g. ZA (default), KE, NG, EG, GH, US, GB, DE, IN, AE. Verified calendars for ZA, NG, KE, EG, GH, MA, RW, UG, TZ, MU and BW",
          "required": false,
          "example": "KE"
        }
      ],
      "exampleResult": {
        "from": "2026-12-01",
        "to": "2026-12-31",
        "businessDays": 20,
        "calendarDays": 30
      }
    },
    {
      "id": "school-calendar",
      "group": "Calendar",
      "title": "South African school calendar: school terms and school holidays 2026-2027",
      "description": "South African public school calendar: term dates and school holidays for 2026 and 2027 from the Department of Basic Education, special school holidays, and whether a given date is a school day. Useful for family travel, childcare, events and education planning in South Africa.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/school-calendar",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/school-calendar?date=2026-11-04&year=2026"
      },
      "mcpTool": "za_school_calendar",
      "priceUsd": "0.003",
      "priceAtomic": "3000",
      "params": [
        {
          "name": "date",
          "type": "string",
          "description": "Optional date (YYYY-MM-DD) to check whether it is a school day",
          "required": false,
          "example": "2026-11-04"
        },
        {
          "name": "year",
          "type": "integer",
          "description": "Optional year (2026-2027) to list the terms; defaults to the date's year or the current year",
          "required": false,
          "example": "2026"
        }
      ],
      "exampleResult": {
        "date": "2026-11-04",
        "isSchoolDay": false,
        "reason": "public holiday: Local Government Elections",
        "term": 4,
        "termEnds": "2026-12-09"
      }
    },
    {
      "id": "sars-deadlines",
      "group": "Compliance",
      "title": "South African tax deadlines (SARS): PAYE, VAT, provisional tax and filing season",
      "description": "South African tax deadlines from SARS between two dates: EMP201 PAYE/UIF/SDL payments, VAT201 returns, provisional tax (IRP6), EMP501 reconciliations and income tax filing-season deadlines, already moved to the previous business day where SARS rules require it. Useful for payroll, bookkeeping, accounting and tax compliance reminders in South Africa.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/sars-deadlines",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/sars-deadlines?from=2026-10-22&to=2026-12-31"
      },
      "mcpTool": "za_sars_deadlines",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [
        {
          "name": "from",
          "type": "string",
          "description": "Start date YYYY-MM-DD (default: today)",
          "required": false,
          "example": "2026-10-22"
        },
        {
          "name": "to",
          "type": "string",
          "description": "End date YYYY-MM-DD, at most 400 days after 'from' (default: from + 90 days)",
          "required": false,
          "example": "2026-12-31"
        }
      ],
      "exampleResult": {
        "count": 9,
        "deadlines": [
          {
            "date": "2026-10-23",
            "obligation": "Deadline: income tax returns for non-provisional individuals not auto-assessed",
            "form": "ITR12"
          },
          {
            "date": "2026-11-06",
            "nominalDate": "2026-11-07",
            "form": "EMP201",
            "period": "October 2026"
          }
        ]
      }
    },
    {
      "id": "tenders",
      "group": "Government tenders",
      "title": "South African government tenders: search open tenders and RFQs (eTenders)",
      "description": "South African government tenders and RFQs: searches open tenders from national and provincial departments, municipalities and state-owned companies published on the National Treasury eTenders portal. Filter by keyword, closing date, category and buyer. Returns tender number, description, buyer, procurement method, opening and closing dates, and tender document links. Updated every 3 hours.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/tenders",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/tenders?q=cleaning+services&open=true&closing_within_days=14&category=services&buyer=Municipality&limit=10"
      },
      "mcpTool": "za_tender_search",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [
        {
          "name": "q",
          "type": "string",
          "description": "Keywords, e.g. 'security services' or 'laptops -lease'",
          "required": false,
          "example": "cleaning services"
        },
        {
          "name": "open",
          "type": "boolean",
          "description": "Only tenders still open (default true)",
          "required": false,
          "example": "true"
        },
        {
          "name": "closing_within_days",
          "type": "integer",
          "description": "Only tenders closing within N days (1-365)",
          "required": false,
          "example": "14"
        },
        {
          "name": "category",
          "type": "string",
          "description": "goods, services, works or consultingServices",
          "required": false,
          "example": "services"
        },
        {
          "name": "buyer",
          "type": "string",
          "description": "Part of the buyer's name, e.g. 'Municipality' or 'Transnet'",
          "required": false,
          "example": "Municipality"
        },
        {
          "name": "limit",
          "type": "integer",
          "description": "Maximum results, 1-50 (default 20)",
          "required": false,
          "example": "10"
        }
      ],
      "exampleResult": {
        "country": "ZA",
        "totalMatches": 93,
        "indexedTenders": 5458,
        "results": [
          {
            "tenderNumber": "T10-2026-2027",
            "description": "Supply and installation of security cameras with monitors, alarms, beams and monitored security and response services for a 3-year period",
            "buyer": "Matzikama Municipality",
            "method": "Request for Quotation",
            "category": "services",
            "opens": "2026-10-02T00:00:00+00:00",
            "closes": "2026-11-02T12:00:00+00:00",
            "documents": [
              {
                "title": "T10-2026-2027 security.pdf",
                "format": "pdf",
                "url": "https://www.etenders.gov.za/home/Download?blobName=c86eb568-e00e-409c-a623-f910b696327f.pdf"
              }
            ],
            "link": "https://www.etenders.gov.za/"
          }
        ]
      }
    },
    {
      "id": "rates",
      "group": "Money",
      "title": "South African interest rates, inflation and rand exchange rates (SARB)",
      "description": "South African interest rates, inflation and rand exchange rates from the South African Reserve Bank (SARB): repo rate, prime lending rate, CPI and PPI inflation, and rand (ZAR) per US dollar, pound, euro and yen, each with its as-of date. Useful for loan and interest calculations, pricing in rand and economic context.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/rates",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/rates?"
      },
      "mcpTool": "za_sarb_rates",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [],
      "exampleResult": {
        "rates": {
          "repoRate": {
            "value": 7.25,
            "asOf": "2026-10-22"
          },
          "primeLendingRate": {
            "value": 10.75,
            "asOf": "2026-10-22"
          },
          "zarPerUsd": {
            "value": 16.4688,
            "asOf": "2026-10-22"
          }
        }
      }
    },
    {
      "id": "bank-branch-codes",
      "group": "Money",
      "title": "South African bank universal branch codes (Capitec, FNB, Absa, Standard Bank, Nedbank)",
      "description": "South African bank universal branch codes for EFT payments and debit orders: Absa, Capitec, FNB, Nedbank, Standard Bank, TymeBank, Discovery Bank, Investec, African Bank and Bidvest Bank. Look up one bank or list all. Useful for completing South African bank payment details.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/bank-branch-codes",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/bank-branch-codes?bank=Capitec"
      },
      "mcpTool": "za_bank_branch_codes",
      "priceUsd": "0.001",
      "priceAtomic": "1000",
      "params": [
        {
          "name": "bank",
          "type": "string",
          "description": "Optional bank name or code to look up",
          "required": false,
          "example": "Capitec"
        }
      ],
      "exampleResult": {
        "matches": [
          {
            "bank": "Capitec Bank",
            "universalBranchCode": "470010"
          }
        ]
      }
    },
    {
      "id": "exchange-rates",
      "group": "Money",
      "title": "Exchange rates for African currencies (rand, naira, shilling, cedi, Egyptian pound) and 150+ others",
      "description": "Daily exchange rates with African currencies by default: South African rand (ZAR), Nigerian naira (NGN), Kenyan shilling (KES), Egyptian pound (EGP), Ghanaian cedi (GHS), Moroccan dirham, CFA francs and more, against USD, EUR or any base currency, with optional amount conversion. Reference mid-market rates from an open daily dataset, not official central-bank fixings. Useful for pricing, invoices, quotes and reports.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/exchange-rates",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/exchange-rates?base=USD&symbols=ZAR%2CNGN%2CKES%2CEGP%2CGHS&amount=100"
      },
      "mcpTool": "exchange_rates",
      "priceUsd": "0.002",
      "priceAtomic": "2000",
      "params": [
        {
          "name": "base",
          "type": "string",
          "description": "Base currency code (default USD)",
          "required": false,
          "example": "USD"
        },
        {
          "name": "symbols",
          "type": "string",
          "description": "Comma-separated currency codes to return (default: 18 African currencies plus USD, EUR, GBP, CNY)",
          "required": false,
          "example": "ZAR,NGN,KES,EGP,GHS"
        },
        {
          "name": "amount",
          "type": "string",
          "description": "Optional amount in the base currency to convert",
          "required": false,
          "example": "100"
        }
      ],
      "exampleResult": {
        "base": "USD",
        "date": "2026-10-31",
        "rates": {
          "ZAR": 16.7089,
          "NGN": 1346.55,
          "KES": 129.85,
          "EGP": 55.88
        },
        "converted": {
          "ZAR": 1670.89
        }
      }
    },
    {
      "id": "validate-id",
      "group": "Checks",
      "title": "South African ID number check: validate and decode an SA ID number",
      "description": "South African ID number validation: checks a 13-digit SA ID number (date of birth, citizenship digit and Luhn checksum) and decodes date of birth, age, gender and citizenship status. Structural check only, with no Home Affairs lookup; the number is not stored. Useful for KYC and onboarding forms and for catching typos.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/validate-id",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/validate-id?id=8001015009087"
      },
      "mcpTool": "za_validate_id_number",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [
        {
          "name": "id",
          "type": "string",
          "description": "13-digit SA ID number",
          "required": true,
          "example": "8001015009087"
        }
      ],
      "exampleResult": {
        "valid": true,
        "decoded": {
          "dateOfBirth": "1980-01-01",
          "ageYears": 46,
          "gender": "male",
          "citizenship": "SA citizen"
        }
      }
    },
    {
      "id": "validate-tax-number",
      "group": "Checks",
      "title": "South African VAT number and income tax number check (SARS format)",
      "description": "South African tax number validation: checks a 10-digit SARS VAT registration number or income tax reference number (format and modulus-10 check digit) and says which type it is. Format check only, not a SARS registration lookup; nothing is stored. Useful for invoices, supplier onboarding and form validation.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/validate-tax-number",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/validate-tax-number?number=0001339050"
      },
      "mcpTool": "za_validate_tax_number",
      "priceUsd": "0.002",
      "priceAtomic": "2000",
      "params": [
        {
          "name": "number",
          "type": "string",
          "description": "VAT or income tax number; spaces, dashes and slashes are ignored",
          "required": true,
          "example": "0001339050"
        }
      ],
      "exampleResult": {
        "valid": true,
        "type": "income tax reference number",
        "normalized": "0001339050"
      }
    },
    {
      "id": "validate-company-number",
      "group": "Checks",
      "title": "South African company registration number check (CIPC)",
      "description": "South African company registration number check: validates a CIPC registration number (YYYY/NNNNNN/NN) and decodes the registration year and entity type, such as (Pty) Ltd, Ltd, NPC, Inc, CC, co-operative or SOC. Format check only, not a CIPC status lookup. Useful for supplier onboarding, invoices and tender paperwork.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/validate-company-number",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/validate-company-number?number=2015%2F123456%2F07"
      },
      "mcpTool": "za_validate_company_number",
      "priceUsd": "0.002",
      "priceAtomic": "2000",
      "params": [
        {
          "name": "number",
          "type": "string",
          "description": "Registration number, e.g. 2015/123456/07",
          "required": true,
          "example": "2015/123456/07"
        }
      ],
      "exampleResult": {
        "valid": true,
        "formatted": "2015/123456/07",
        "registrationYear": 2015,
        "entityType": "Private company (Pty) Ltd"
      }
    },
    {
      "id": "normalize-phone",
      "group": "Checks",
      "title": "South African phone number formatting and validation (+27)",
      "description": "South African phone number formatting and classification: converts an SA number in any common format to international +27 (E.164) and local formats, and says whether it is mobile, landline (with area for major cities), toll-free, VoIP or premium-rate. Useful for cleaning contact lists, SMS and WhatsApp messaging, and form validation.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/normalize-phone",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/normalize-phone?number=082+123+4567"
      },
      "mcpTool": "za_normalize_phone",
      "priceUsd": "0.001",
      "priceAtomic": "1000",
      "params": [
        {
          "name": "number",
          "type": "string",
          "description": "Phone number in any common format, e.g. 082 123 4567 or +27 11 555 1234",
          "required": true,
          "example": "082 123 4567"
        }
      ],
      "exampleResult": {
        "valid": true,
        "e164": "+27821234567",
        "national": "082 123 4567",
        "type": "mobile"
      }
    },
    {
      "id": "incident-reporting",
      "group": "Cyber security",
      "title": "Data breach and cyber incident reporting rules: South Africa, Nigeria, Kenya, Egypt and 7 more",
      "description": "Data breach and cyber incident reporting obligations in South Africa, Nigeria, Kenya, Egypt, Ghana, Morocco, Rwanda, Uganda, Tanzania, Mauritius and Botswana: which regulators and people must be notified, the legal deadline (such as 72 hours) and the computed due time from discovery. Covers POPIA and FSCA/PA rules in South Africa, NDPA and ngCERT in Nigeria, and Kenya's Data Protection Act. Triage guidance, not legal advice.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/incident-reporting",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/incident-reporting?country=ZA&critical_infrastructure=false&sector=bank&personal_info=true&role=responsible_party&material=true&aware_at=2026-10-22T08%3A15%2B02%3A00&classified_at=2026-10-22T11%3A00%2B02%3A00&jse_listed=false"
      },
      "mcpTool": "za_incident_reporting_obligations",
      "priceUsd": "0.01",
      "priceAtomic": "10000",
      "params": [
        {
          "name": "country",
          "type": "string",
          "description": "Country code: ZA (default), NG, KE, EG, GH, MA, RW, UG, TZ, MU or BW",
          "required": false,
          "example": "ZA"
        },
        {
          "name": "critical_infrastructure",
          "type": "boolean",
          "description": "Outside South Africa: are you a designated critical / vital infrastructure operator? Omit if unknown",
          "required": false,
          "example": "false"
        },
        {
          "name": "sector",
          "type": "string",
          "description": "South Africa only. Organisation type: general (any private business), bank, mutual_bank, insurer, financial_other (other FSCA-regulated institutions covered by Joint Standard 1 of 2023 or 2 of 2024, e.g. market infrastructures, certain FSPs, pension funds), public_body, ecsp (electronic communications service provider). Default general",
          "required": false,
          "example": "bank"
        },
        {
          "name": "personal_info",
          "type": "boolean",
          "description": "Was personal information accessed or acquired by an unauthorised person? Omit if unknown",
          "required": false,
          "example": "true"
        },
        {
          "name": "role",
          "type": "string",
          "description": "responsible_party (default) or operator (you process the data for someone else)",
          "required": false,
          "example": "responsible_party"
        },
        {
          "name": "material",
          "type": "boolean",
          "description": "Financial institutions: has the incident been classified as material? Omit if not yet assessed",
          "required": false,
          "example": "true"
        },
        {
          "name": "aware_at",
          "type": "string",
          "description": "When you discovered the compromise (ISO 8601; no offset = UTC+2)",
          "required": false,
          "example": "2026-10-22T08:15+02:00"
        },
        {
          "name": "classified_at",
          "type": "string",
          "description": "Financial institutions: when the incident was classified as material (ISO 8601)",
          "required": false,
          "example": "2026-10-22T11:00+02:00"
        },
        {
          "name": "jse_listed",
          "type": "boolean",
          "description": "Is the organisation listed on the JSE? Default false",
          "required": false,
          "example": "false"
        }
      ],
      "exampleResult": {
        "obligations": [
          {
            "notify": "Prudential Authority (PA)",
            "law": "FSCA/PA Joint Standard 2 of 2024",
            "deadline": "within 24 hours of classifying the incident as material",
            "dueAtSAST": "2026-10-23 11:00 SAST"
          },
          {
            "notify": "Information Regulator",
            "law": "POPIA section 22",
            "deadline": "as soon as reasonably possible"
          }
        ],
        "notYetInForce": [
          {
            "law": "Cybercrimes Act 19 of 2020, section 54"
          }
        ]
      }
    },
    {
      "id": "official-domain-check",
      "group": "Cyber security",
      "title": "Phishing link check for Africa: is this really SARS, KRA, M-Pesa or my bank?",
      "description": "Phishing and fake-website check for Africa: compares a link or domain with the official domains of about 130 tax authorities (SARS, KRA, FIRS, GRA), central banks, government services, banks, mobile money (M-Pesa, MTN MoMo, OPay) and telecoms in South Africa and 10 other African countries, and flags lookalike domains, typosquats, brand names in unofficial domains and newly registered domains.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/official-domain-check",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/official-domain-check?url=https%3A%2F%2Fsars-efiling-refund.com%2Flogin"
      },
      "mcpTool": "za_official_domain_check",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [
        {
          "name": "url",
          "type": "string",
          "description": "A link or domain, e.g. https://sars-refund-portal.com/login or capitecbank.co.za",
          "required": true,
          "example": "https://sars-efiling-refund.com/login"
        }
      ],
      "exampleResult": {
        "verdict": "possible-impersonation",
        "risk": "high",
        "signals": [
          {
            "signal": "brand-name",
            "org": "South African Revenue Service (SARS)"
          }
        ],
        "possiblyImpersonating": [
          {
            "organisation": "South African Revenue Service (SARS)",
            "officialDomains": [
              "sars.gov.za",
              "sarsefiling.co.za"
            ]
          }
        ]
      }
    },
    {
      "id": "email-security",
      "group": "Cyber security",
      "title": "Email spoofing and DMARC check, with African bank and government scorecards",
      "description": "Email security and spoofing check for any domain: grades DMARC, SPF, DNSSEC, MTA-STS and TLS-RPT from public DNS and says how easily fake email could be sent in the domain's name. Alternatively returns daily-updated scorecards ranking banks, government bodies, regulators and telecoms in South Africa, Nigeria, Kenya, Egypt, Ghana and 6 other African countries.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/email-security",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/email-security?domain=sars.gov.za"
      },
      "mcpTool": "za_email_security",
      "priceUsd": "0.003",
      "priceAtomic": "3000",
      "params": [
        {
          "name": "domain",
          "type": "string",
          "description": "Domain to check, e.g. example.co.za (use this or sector)",
          "required": false,
          "example": "sars.gov.za"
        },
        {
          "name": "sector",
          "type": "string",
          "description": "Leave empty when checking a domain. For a ranked scorecard instead, give a sector: banks_insurers, government, metros, regulators_soe, telecoms, all (e.g. banks_insurers)",
          "required": false,
          "example": ""
        },
        {
          "name": "country",
          "type": "string",
          "description": "Scorecard only: ZA (default), NG, KE, EG, GH, MA, RW, UG, TZ, MU, BW, or ALL",
          "required": false,
          "example": ""
        }
      ],
      "exampleResult": {
        "domain": "example.co.za",
        "score": 75,
        "grade": "B",
        "spoofing": "harder (lands in spam)",
        "dmarc": {
          "policy": "quarantine"
        },
        "findings": [
          "no MTA-STS: incoming mail encryption can be downgraded"
        ]
      }
    },
    {
      "id": "domain-intel",
      "group": "Cyber security",
      "title": "Domain lookup: WHOIS/RDAP registrar, age and expiry, DNS, email security and phishing signals",
      "description": "Domain intelligence for any domain: registrar, registration and expiry dates and domain age from registry RDAP (the modern WHOIS), nameservers and DNSSEC, website addresses, email security grade (DMARC, SPF, MTA-STS) and impersonation signals for African banks, tax authorities and mobile money, with plain-language risk flags such as newly registered or easily spoofed. Useful for phishing triage, vendor checks and research.",
      "http": {
        "method": "GET",
        "url": "https://agentstall.padawanconsulting.com/v1/domain-intel",
        "exampleUrl": "https://agentstall.padawanconsulting.com/v1/domain-intel?domain=example.com"
      },
      "mcpTool": "domain_intel",
      "priceUsd": "0.005",
      "priceAtomic": "5000",
      "params": [
        {
          "name": "domain",
          "type": "string",
          "description": "Domain or link, e.g. example.com or https://kra-itax-refund.com/login",
          "required": true,
          "example": "example.com"
        }
      ],
      "exampleResult": {
        "domain": "example.com",
        "registration": {
          "registrar": "RESERVED-Internet Assigned Numbers Authority",
          "registeredOn": "1995-08-14T04:00:00Z",
          "expiresOn": "2027-08-13T04:00:00Z",
          "ageDays": 11402,
          "dnssecSigned": true
        },
        "dns": {
          "a": [
            "93.184.215.14"
          ],
          "nameservers": [
            "a.iana-servers.net",
            "b.iana-servers.net"
          ]
        },
        "email": {
          "grade": "C",
          "spoofing": "hard (rejected)",
          "dmarc": "reject"
        },
        "flags": []
      }
    }
  ],
  "guarantees": [
    "Paid requests with invalid input are rejected with HTTP 400 before the payment is verified, so nothing is charged.",
    "Payment is verified first and settled only after the result is computed.",
    "Request parameters (such as ID numbers) are never stored."
  ]
}