Agentic Portal

AgentSearch

web
Serving

Web search built for agents, served over Pocket Network: POST /v1/search with a query and an optional max_results, and get the results back as one JSON object. Results vary run to run, as web search does. GET /v1/version, /v1/health and /v1/capabilities describe the service. Pay per request in USDC; no account, no API key.

Endpoint
POST https://agent.pocket.network/v1/agentsearch-web-search-v1/v1/search
Price per call
$0.005 USD
Networks payable on
Base (eip155:8453), Tempo (eip155:4217)
Protocol
rest

Calling it

The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.

Example request

A real, working call — the request the service card verifies against.

curl -X POST https://agent.pocket.network/v1/agentsearch-web-search-v1/v1/search \
  -H 'content-type: application/json' \
  -d '{"query":"Pocket Network","max_results":1}'
Example response

The response this call returned, captured 2026-09-21 23:46:22 UTC.

{
  "portal": {
    "provenance": "third-party-supplier",
    "serviceId": "agentsearch-web-search-v1",
    "schemaCheck": "unchecked"
  },
  "data": {
    "query": "Pocket Network",
    "provider": "tavily",
    "provider_status": "live",
    "provider_selection": {
      "mode": "auto",
      "requested": "auto",
      "fallback_used": false,
      "selection_reason": "provider_competition_exploration",
      "exploration": true,
      "exploration_reason": "provider_comparison_under_sampled",
      "exploration_provider": "tavily",
      "learned_provider": "brave",
      "memory_historical_observations": 6,
      "memory_exploitation_eligible": true,
      "memory_considered": true,
      "configured_candidates": [
        "tavily",
        "brave"
      ],
      "observations_by_provider": {
        "tavily": 2,
        "brave": 4
      },
      "convergence": {
        "status": "under_sampled",
        "ready_for_quality_based_exploitation": false,
        "comparable_provider_count": 1,
        "configured_provider_count": 2,
        "min_comparable_observations": 3,
        "provider_ranking": [
          "brave"
        ],
        "quality_winner": "brave",
        "runner_up": null,
        "quality_margin": null
      },
      "comparison_policy": {
        "min_comparable_observations": 3,
        "quality_aware": true
      }
    },
    "provider_attempts": [
      {
        "provider": "tavily",
        "status": "success",
        "latency_ms": 974.84
      }
    ],
    "provider_registry": {
      "providers": {
        "tavily": {
          "configured": true,
          "capabilities": [
            "web_search",
            "time_filter"
          ]
        },
        "brave": {
          "configured": true,
          "capabilities": [
            "web_search",
            "time_filter"
          ]
        }
      },
      "supported_providers": [
        "tavily",
        "brave"
      ],
      "configured_provider_count": 2,
      "preference": "auto"
    },
    "provider_result_quality": {
      "quality_score": 0.99,
      "result_count": 1,
      "valid_url_rate": 1,
      "content_completeness_rate": 1,
      "unique_domain_count": 1,
      "domain_diversity_rate": 1,
      "primary_source_rate": 0,
      "average_provider_score": 0.9334,
      "query_relevance_coverage": 1,
      "quality_policy": {
        "evidence_quality_is_separate_from_provider_identity": true,
        "quality_score_is_telemetry_not_truth": true,
        "preserve_raw_results_for_downstream_verification": true
      }
    },
    "provider_routing_telemetry": {
      "selected_provider": "tavily",
      "selection_mode": "auto",
      "fallback_used": false,
      "attempt_count": 1,
      "successful_attempts": 1,
      "result_quality_score": 0.99,
      "routing_signal": "provider_success_and_result_quality",
      "selection_reason": "provider_competition_exploration",
      "memory_exploitation_eligible": true,
      "quality_accepted": true,
      "quality_decision": {
        "acceptable": true,
        "quality_score": 0.99,
        "primary_source_rate": 0,
        "reasons": [],
        "quality_threshold": 0.85,
        "primary_source_threshold": 0.4
      },
      "quality_recovery": {
        "triggered": false,
        "from_provider": null,
        "selected_provider_after_recovery": null,
        "comparison": null,
        "alternate_rejected": false,
        "error": null,
        "selection": null,
        "memory_preview": {
          "mode": "read_only",
          "does_not_execute_search": true,
          "does_not_change_provider_selection": true,
          "by_failed_provider": {
            "tavily": "…",
            "brave": "…"
          },
          "learning_state": {
            "tavily": "…",
            "brave": "…"
          },
          "cross_query_memory": {
            "enabled": true,
            "description": "Cross-query recovery observations supplement exact-query history when available.",
            "provider_pairs": "…"
          },
          "context_memory": {
            "enabled": true,
            "profile": "general",
            "description": "Recovery observations from related query contexts supplement exact-query memory before global cross-query memory, with temporal decay applied to generalized transfer confidence.",
            "provider_pairs": "…"
          },
          "context_generalization": {
            "enabled": true,
            "policy": "nearest_compatible_context_with_similarity_threshold",
            "temporal_decay_enabled": true,
            "decay_half_life_days": 30,
            "max_age_days": 180,
            "target_context": "general",
            "source_context": null,
            "similarity": 0,
            "sample_confidence": 0,
            "transfer_confidence": 0,
            "shared_signals": "…",
            "compatible": false,
            "minimum_source_attempts": 3,
            "source_attempts": 0
          }
        },
        "outcome": "NOT_TRIGGERED",
        "outcome_memory": {
          "write_succeeded": true,
          "version": 6,
          "total": 8,
          "triggered": 0,
          "accepted": 0,
          "rejected": 0,
          "failed": 0,
          "reasons": {},
          "provider_pairs": {},
          "quality_lift_sum": 0,
          "quality_lift_count": 0,
          "positive_quality_lift_sum": 0,
          "positive_quality_lift_count": 0,
          "cost_delta_sum_usd": 0,
          "cost_delta_count": 0,
          "average_quality_lift": 0,
          "average_positive_quality_lift": 0,
          "average_cost_delta_usd": 0,
          "causality": {
            "version": 6,
            "signals": "…"
          },
          "last_recovery_outcome": {
            "outcome": "NOT_TRIGGERED",
            "initial_provider": null,
            "alternate_provider": null,
            "reasons": "…",
            "initial_quality": null,
            "alternate_quality": null,
            "timestamp": "2026-09-21T23:46:20.850040+00:00"
          },
          "causal_feedback": {},
          "causal_calibration": {}
        }
      },
      "future_routing_ready": true,
      "causal_feedback": {
        "causal_prediction": "causal_prediction_unavailable",
        "causal_prediction_correct": false,
        "causal_feedback_attempts": 0,
        "causal_feedback_accuracy": 0,
        "causal_feedback_confidence": 0,
        "causal_feedback_source": "none",
        "causal_feedback_temporal_freshness": 1,
        "causal_feedback_effect": 0,
        "causal_effect_applied": false,
        "causal_raw_confidence": 0,
        "causal_calibrated_confidence": 0,
        "causal_calibration_attempts": 0,
        "causal_calibration_accuracy": 0,
        "causal_calibration_error": 0,
        "causal_calibration_bias": 0,
        "causal_calibration_confidence": 0,
        "causal_calibration_source": "none",
        "causal_calibration_temporal_freshness": 1,
        "causal_calibration_effect": 0,
        "predicted_provider": null,
        "selected_provider": "tavily"
      },
      "evidence_graph_learning": {
        "learning_version": "1.0",
        "patterns_observed": 0,
        "patterns": [],
        "observed_outcomes": 0,
        "unavailable_outcomes": 0,
        "learning_confidence": 0,
        "provenance": [],
        "temporal": {
          "timestamps_preserved": true,
          "unknown_timestamps_remain_unknown": true
        },
        "write_succeeded": false,
        "routing_integration": "observation_only"
      },
      "evidence_graph_learning_generalization": {
        "available": false,
        "match_type": "UNAVAILABLE",
        "reason": "NO_CURRENT_LEARNING_GRAPH",
        "compatibility_threshold": 0.6,
        "deterministic": true
      },
      "evidence_graph_learning_generalization_confidence": {
        "available": false,
        "confidence": 0,
        "confidence_band": "UNAVAILABLE",
        "match_type": "UNAVAILABLE",
        "deterministic": true
      },
      "evidence_graph_learning_transfer_validation": {
        "transfer_status": "UNAVAILABLE",
        "transfer_score": 0,
        "transfer_thresholds": {
          "exact": 0.7,
          "generalized": 0.75,
          "compatibility_margin": 0.1
        },
        "match_type": "UNAVAILABLE",
        "compatibility_score": 0,
        "confidence": 0,
        "sample_strength": 0,
        "outcome_consistency": 0,
        "conflict_state": false,
        "provenance": [],
        "provenance_strength": 0,
        "temporal_state": "UNKNOWN",
        "temporal_freshness": null,
        "supporting_dimensions": [],
        "limiting_dimensions": [
          "FAILURE_OR_EVIDENCE_MISMATCH",
          "WEAK_PROVENANCE",
          "WEAK_SAMPLE_SUPPORT"
        ],
        "uncertainty_reasons": [
          "CORE_EVIDENCE_DIMENSION_MISMATCH",
          "INSUFFICIENT_SAMPLE_STRENGTH",
          "LIMITED_PROVENANCE"
        ],
        "reason_codes": [
          "CORE_EVIDENCE_DIMENSION_MISMATCH",
          "INSUFFICIENT_SAMPLE_STRENGTH",
          "LIMITED_PROVENANCE"
        ],
        "matched_pattern_identity": null,
        "v3.46_generalization_reference": {
          "available": false,
          "match_type": "UNAVAILABLE",
          "reason": "NO_CURRENT_LEARNING_GRAPH",
          "compatibility_threshold": 0.6,
          "deterministic": true
        },
        "v3.47_confidence_reference": {
          "available": false,
          "confidence": 0,
          "confidence_band": "UNAVAILABLE",
          "match_type": "UNAVAILABLE",
          "deterministic": true
        },
        "deterministic": true,
        "read_only": true
      },
      "evidence_graph_learning_transfer_feedback": {
        "transfer_feedback_version": "1.0",
        "learning_status": "UNAVAILABLE",
        "observed_outcome": "OUTCOME_UNAVAILABLE",
        "write_succeeded": false
      }
    },
    "provider_recovery_outcome_memory": {
      "write_succeeded": true,
      "version": 6,
      "total": 8,
      "triggered": 0,
      "accepted": 0,
      "rejected": 0,
      "failed": 0,
      "reasons": {},
      "provider_pairs": {},
      "quality_lift_sum": 0,
      "quality_lift_count": 0,
      "positive_quality_lift_sum": 0,
      "positive_quality_lift_count": 0,
      "cost_delta_sum_usd": 0,
      "cost_delta_count": 0,
      "average_quality_lift": 0,
      "average_positive_quality_lift": 0,
      "average_cost_delta_usd": 0,
      "causality": {
        "version": 6,
        "signals": {}
      },
      "last_recovery_outcome": {
        "outcome": "NOT_TRIGGERED",
        "initial_provider": null,
        "alternate_provider": null,
        "reasons": [],
        "initial_quality": null,
        "alternate_quality": null,
        "timestamp": "2026-09-21T23:46:20.850040+00:00"
      },
      "causal_feedback": {},
      "causal_calibration": {}
    },
    "evidence_graph_learning": {
      "learning_version": "1.0",
      "patterns_observed": 0,
      "patterns": [],
      "observed_outcomes": 0,
      "unavailable_outcomes": 0,
      "learning_confidence": 0,
      "provenance": [],
      "temporal": {
        "timestamps_preserved": true,
        "unknown_timestamps_remain_unknown": true
      },
      "write_succeeded": false,
      "routing_integration": "observation_only"
    },
    "evidence_graph_learning_generalization": {
      "available": false,
      "match_type": "UNAVAILABLE",
      "reason": "NO_CURRENT_LEARNING_GRAPH",
      "compatibility_threshold": 0.6,
      "deterministic": true
    },
    "evidence_graph_learning_generalization_confidence": {
      "available": false,
      "confidence": 0,
      "confidence_band": "UNAVAILABLE",
      "match_type": "UNAVAILABLE",
      "deterministic": true
    },
    "evidence_graph_learning_transfer_validation": {
      "transfer_status": "UNAVAILABLE",
      "transfer_score": 0,
      "transfer_thresholds": {
        "exact": 0.7,
        "generalized": 0.75,
        "compatibility_margin": 0.1
      },
      "match_type": "UNAVAILABLE",
      "compatibility_score": 0,
      "confidence": 0,
      "sample_strength": 0,
      "outcome_consistency": 0,
      "conflict_state": false,
      "provenance": [],
      "provenance_strength": 0,
      "temporal_state": "UNKNOWN",
      "temporal_freshness": null,
      "supporting_dimensions": [],
      "limiting_dimensions": [
        "FAILURE_OR_EVIDENCE_MISMATCH",
        "WEAK_PROVENANCE",
        "WEAK_SAMPLE_SUPPORT"
      ],
      "uncertainty_reasons": [
        "CORE_EVIDENCE_DIMENSION_MISMATCH",
        "INSUFFICIENT_SAMPLE_STRENGTH",
        "LIMITED_PROVENANCE"
      ],
      "reason_codes": [
        "CORE_EVIDENCE_DIMENSION_MISMATCH",
        "INSUFFICIENT_SAMPLE_STRENGTH",
        "LIMITED_PROVENANCE"
      ],
      "matched_pattern_identity": null,
      "v3.46_generalization_reference": {
        "available": false,
        "match_type": "UNAVAILABLE",
        "reason": "NO_CURRENT_LEARNING_GRAPH",
        "compatibility_threshold": 0.6,
        "deterministic": true
      },
      "v3.47_confidence_reference": {
        "available": false,
        "confidence": 0,
        "confidence_band": "UNAVAILABLE",
        "match_type": "UNAVAILABLE",
        "deterministic": true
      },
      "deterministic": true,
      "read_only": true
    },
    "evidence_graph_learning_transfer_feedback": {
      "transfer_feedback_version": "1.0",
      "learning_status": "UNAVAILABLE",
      "observed_outcome": "OUTCOME_UNAVAILABLE",
      "write_succeeded": false
    },
    "provider_performance_memory": {
      "context_key": "a83a2c94e9893648a432a6c2",
      "historical_observations": 8,
      "providers": {
        "tavily": {
          "observations": 4,
          "recency_weighted_observations": 3.8615,
          "recency_weighted_quality": 0.99,
          "success_rate": 1,
          "calibrated_quality": 0.8228,
          "recency_weighted_latency_ms": 983.78,
          "latency_score": 0.9672,
          "eligible_for_exploitation": true
        },
        "brave": {
          "observations": 4,
          "recency_weighted_observations": 3.7668,
          "recency_weighted_quality": 0.85,
          "success_rate": 1,
          "calibrated_quality": 0.7286,
          "recency_weighted_latency_ms": 732.46,
          "latency_score": 0.9756,
          "eligible_for_exploitation": true
        }
      },
      "preferred_provider": "tavily",
      "memory_policy": {
        "persistent": true,
        "recency_half_life_days": 30,
        "min_observations_to_exploit": 3,
        "min_comparable_observations": 3,
        "exploration_rate": 0.2,
        "quality_aware_comparison": true,
        "latency_aware_routing": true,
        "latency_weight": 0.1,
        "max_latency_ms": 30000,
        "quality_is_telemetry_not_truth": true
      },
      "convergence": {
        "status": "converged",
        "ready_for_quality_based_exploitation": true,
        "comparable_provider_count": 2,
        "configured_provider_count": 2,
        "min_comparable_observations": 3,
        "provider_ranking": [
          "tavily",
          "brave"
        ],
        "quality_winner": "tavily",
        "runner_up": "brave",
        "quality_margin": 0.0942
      },
      "write_succeeded": true,
      "last_observation": {
        "provider": "tavily",
        "quality_score": 0.99,
        "success": true,
        "fallback_used": false,
        "latency_ms": 974.84
      }
    },
    "request_performance": {
      "provider_external_calls": 1,
      "provider_cache_hits": 0,
      "fetch_external_calls": 0,
      "fetch_cache_hits": 0,
      "freshness_external_calls": 0,
      "freshness_cache_hits": 0,
      "parallel_fetches": 0,
      "max_fetch_concurrency": 0
    },
    "result_count": 1,
    "official_source_count": 0,
    "retrieved_at": "2026-09-21T23:46:20.856863+00:00",
    "results": [
      {
        "title": "What is Pocket Network? | Messari by Blockworks",
        "url": "https://messari.io/project/pocket-network-2/profile",
        "content": "## About\n\nPocket Network is an open protocol that provides developers with reliable, performant, and cost-effective RPC access to the open internet. They offer support for various blockchain platforms, including L1 blockchains, L2 rollups, Cosmos zones, Avalanche subnets, and Polkadot parachains. Their protocol connects apps to RPC node operators, ensuring reliable data access. Additionally, Pocket Network allows developers to earn rewards by deploying their RPC nodes and staking POKT tokens. [...] Pocket Network is a Decentralized Solution\n\nPocket Network efficiently reorganizes blockchain infrastructure and addresses the paradox of decentralized network running on centralized infrastructure, here is how the network is becoming antifragile and preparing to be setup to scale to support bil…",
        "score": 0.93338853,
        "published_date": null,
        "retrieved_at": "2026-09-21T23:46:20.842848+00:00",
        "source_quality": "GENERAL_WEB",
        "quality_score": 2,
        "domain": "messari.io",
        "is_primary": false,
        "source_owner": null,
        "source_role": "THIRD_PARTY_UNKNOWN",
        "ownership_basis": "publisher identity not established by domain rules",
        "provenance_confidence": 0.45,
        "trust_score": 0.45,
        "trust_level": "LOW",
        "publisher_identity_known": false,
        "publisher_identity": null,
        "publisher_authority_level": "UNKNOWN",
        "publisher_authority_score": 0.3,
        "publisher_authority_basis": "publisher identity not established by authority rules"
      }
    ],
    "agent_guidance": {
      "prefer_primary_sources": true,
      "preserve_source_urls": true,
      "preserve_retrieval_time": true,
      "do_not_treat_search_snippets_as_final_truth": true
    },
    "evidence_policy": {
      "separate_evidence_from_conclusions": true,
      "surface_conflicting_sources": true
    }
  }
}

Try it

Make one real paid call from your own wallet — about $0.005 on Base (eip155:8453). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.

No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.

Supported methods

Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.

Methods AgentSearch accepts, and whether each reads or writes.
MethodEffect
GET /healthzread
GET /v1/capabilitiesread
GET /v1/healthread
GET /v1/versionread
POST /v1/searchread

Schemas

Published by the service itself. The example above is generated from these.

Request schema
{
  "type": "object",
  "description": "A search request. The body is JSON and is bounded by the service at 16 KiB.",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search query, in natural language or keywords."
    },
    "max_results": {
      "type": "integer",
      "minimum": 1,
      "description": "How many results to return at most."
    }
  },
  "required": [
    "query"
  ]
}
Response schema
{
  "type": "object",
  "description": "For POST /v1/search, a JSON object carrying the `query` as received and the search results; the exact shape is the service's own and is not pinned here. A validation failure returns `{ detail: [{ loc, msg, type }] }` with HTTP 422. The other routes (healthz, version, health, capabilities) return their own small JSON documents.",
  "examples": [
    {
      "query": "Pocket Network"
    }
  ]
}