# Mangrove Developer – Signals Behavior Lookup

> Mangrove Developer – Signals Behavior Lookup is a paid API for AI agents from api.mangrovedeveloper.ai, paid per call via x402, $0.005/call, status unknown (last checked 2026-11-04).

Queries metadata, parameter settings, and statistical behavior of named trading signals (RSI, volatility, momentum, etc.) across describe, pick, find, and gap_probability operations.

## Facts

- Endpoint: POST https://api.mangrovedeveloper.ai/api/v1/signals/behavior?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mangrove-developer-signals-behavior-lookup-1eea97c6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GalbDempAo_80f13ZgPYu

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mangrove-developer-signals-behavior-lookup-1eea97c6 -d '<json body>'
```

Example prompt: Describe the rsi_oversold signal for me — what does it measure, what are its parameters, and how many configurations have been tested?

## When to prefer this

Use this endpoint when you need programmatic, structured metadata about specific named trading signals — their statistical properties, parameter ranges, and measured behavior — rather than generating signals or running backtests. Ideal for agents that need to select, tune, or explain trading signals dynamically based on quantitative criteria.

## Known failure modes

- Signal name not found — returns empty result or error if the signal field is misspelled or unsupported
- Missing required fields for a lookup type — e.g. omitting min_rate/max_rate for a 'find' lookup returns a validation error
- Out-of-range limit value (outside 1–100) causes a parameter validation failure
- Conflicting constraints (e.g. min_run_bars > max_run_bars) may return empty results
- Payment not included or insufficient USDC — x402 payment required error returned before processing

## How this service works

Developer references for Mangrove Agent, API contracts, MCP and AI integrations.

## Output

A JSON object containing the signal's category, type (FILTER or TRIGGER), description, parameter definitions with min/max/default/meaning, number of configurations tested, and total bars measured — or, for pick/find/gap_probability lookups, ranked configurations, matching signals, or gap probability distributions respectively.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "limit": {
   "type": "integer",
   "default": 10,
   "description": "Maximum results, 1-100"
  },
  "lookup": {
   "enum": [
    "describe",
    "pick",
    "find",
    "gap_probability"
   ],
   "type": "string",
   "example": "describe",
   "description": "describe: one signal -- parameter meanings, measured span, what its default measures. pick: settings of one signal that hit target_rate. find: which signals reach a rate band. gap_probability: share of a signal's gaps inside a range of bar lengths, per configuration."
  },
  "signal": {
   "type": "string",
   "description": "Signal name, e.g. rsi_oversold. Required by describe, pick, gap_probability"
  },
  "category": {
   "type": "string",
   "description": "find: restrict to one family, e.g. oscillator, volatility, momentum"
  },
  "max_rate": {
   "type": "number",
   "description": "find: high end of the band, same units (required)"
  },
  "min_rate": {
   "type": "number",
   "description": "find: low end of the band, same units (required)"
  },
  "signal_type": {
   "enum": [
    "FILTER",
    "TRIGGER"
   ],
   "type": "string",
   "default": "FILTER",
   "example": "FILTER",
   "description": "FILTER (an ongoing state) or TRIGGER (a one-bar event); measured separately"
  },
  "target_rate": {
   "type": "number",
   "description": "pick: rate to aim for -- FILTER selectivity 0-1, TRIGGER firings per 1,000 bars. Omit to list the span"
  },
  "max_gap_bars": {
   "type": "number",
   "description": "pick/find, TRIGGER only: median gap at most this many bars"
  },
  "max_run_bars": {
   "type": "number",
   "description": "pick/find, FILTER only: mean run at most this many bars"
  },
  "min_gap_bars": {
   "type": "number",
   "description": "pick/find, TRIGGER only: median gap at least this many bars"
  },
  "min_run_bars": {
   "type": "number",
   "description": "pick/find, FILTER only: mean run at least this many bars"
  },
  "max_gap_range_bars": {
   "type": "number",
   "description": "gap_probability: high end of the gap range, inclusive (required)"
  },
  "min_gap_range_bars": {
   "type": "number",
   "description": "gap_probability: low end of the gap range, inclusive (required)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "lookup": "describe",
  "result": {
   "signal": "rsi_oversold",
   "category": "oscillator",
   "measured": true,
   "parameters": {
    "window": {
     "max": 100,
     "min": 2,
     "type": "int",
     "means": "RSI calculation window",
     "default": 14
    },
    "threshold": {
     "max": 50,
     "min": 0,
     "type": "float",
     "means": "Oversold threshold",
     "default": 30
    }
   },
   "description": "Check if RSI is below the oversold threshold. RSI values bel...",
   "signal_type": "FILTER",
   "configurations": 151,
   "measured_over_bars": 339669
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mangrove-developer-signals-behavior-lookup-1eea97c6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mangrovedeveloper.ai](https://www.zero.xyz/host/api.mangrovedeveloper.ai/llms.txt)
