specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Geneos providerId: geneos created: '2026-05-04' modified: '2026-09-12' generated: '2026-09-12' method: searched source: >- https://docs.itrsgroup.com/docs/geneos/current/collection/rest-api/index.html, https://docs.itrsgroup.com/docs/geneos/current/collection/xml-rpc-api/index.html, https://docs.itrsgroup.com/docs/geneos/current/processing/monitoring-and-alerts/geneos_commands_tr/index.html note: >- REPLACES a 2026-05-04 bulk-sweep scaffold that invented X-RateLimit-* headers, 429 responses and free/professional/enterprise request quotas. Geneos publishes none of that. It is customer-deployed software running on the customer's own hosts, so there is no metered request allowance and nothing to throttle against — but it DOES publish real, named capacity limits, and those are recorded below as what they are: resource ceilings, not request-rate limits. request_rate_limits_published: false limit_count: 5 headers: limit: null remaining: null reset: null retryAfter: null policy: null note: >- No rate-limit response headers on any surface. Probed and read the Gateway REST HTTP status code reference, which lists 200/400/403/404/500 and no 429. responseCodes: throttled: null quotaExceeded: null note: No 429 and no 503 documented on any Geneos API surface. limits: - name: Custom dataview row limit kind: resource scope: per-dataview metric: rows limit: 200 configurable: true configured_at: - 'Netprobe REST API sampler > Row limit' - 'XML-RPC sampler parameter MAX_GM_ROWS' - 'Gateway Setup Editor > Operating environment > Custom dataview max rows (Gateway-wide override)' on_exceed: >- The sampler truncates the table to the limit and writes a warning into the samplingStatus headline. Over XML-RPC the call returns LIMIT_REACHED. since: >- Enforced by default from Gateway 7.7.0 / Netprobe 7.7.0 for plug-ins that previously had no configured limit — a breaking change recorded in the release notes. applies: - Geneos Netprobe REST API - Geneos XML-RPC Instrumentation API source: https://docs.itrsgroup.com/docs/geneos/current/collection/rest-api/index.html - name: Views per sampler kind: resource scope: per-sampler metric: dataviews limit: 0 unit_note: '0 means no maximum is enforced (the documented default for MAX_GM).' configurable: true configured_at: 'XML-RPC sampler parameter MAX_GM' on_exceed: LIMIT_REACHED applies: - Geneos XML-RPC Instrumentation API source: https://docs.itrsgroup.com/docs/geneos/current/collection/xml-rpc-api/index.html - name: Columns per view kind: resource scope: per-dataview metric: columns limit: 0 unit_note: '0 means no maximum is enforced (the documented default for MAX_GM_COLS).' configurable: true configured_at: 'XML-RPC sampler parameter MAX_GM_COLS' on_exceed: LIMIT_REACHED applies: - Geneos XML-RPC Instrumentation API source: https://docs.itrsgroup.com/docs/geneos/current/collection/xml-rpc-api/index.html - name: Stream buffer size kind: resource scope: per-stream metric: messages held in memory limit: 1000 configurable: true configured_at: - 'REST API sampler > Buffer size' - 'API-STREAMS plug-in > bufferSize' on_exceed: >- The sampler drops the earliest messages and counts them in the totalMessagesLost column of the Streams Dataview. Over XML-RPC a write to a full buffer returns STREAM_BUFFER_FULL. applies: - Geneos Netprobe REST API - Geneos XML-RPC Instrumentation API source: https://docs.itrsgroup.com/docs/geneos/current/collection/rest-api/index.html - name: Heartbeat commitment interval kind: temporal scope: per-sampler metric: seconds between updates min: 1 max: 86400 on_exceed: NUMBER_OUT_OF_RANGE description: >- A client calling entity.sampler.signOn commits to updating at least this often; missing the window flips samplingStatus to "FAILED: No heartbeat from the client in the last xx seconds". applies: - Geneos XML-RPC Instrumentation API source: https://docs.itrsgroup.com/docs/geneos/current/collection/xml-rpc-api/index.html back_pressure: mechanism: structural, not protocol-level description: >- Geneos signals overload through monitoring data rather than through HTTP. totalMessagesLost on the Streams Dataview, truncation warnings in samplingStatus, and the Netprobe's own memory protection ratio are the signals. ITRS explicitly warns that "Depending on the rate of incoming requests, the REST API plug-in may be resource-intensive and can cause the Netprobe to reach its memory protection ratio", with the remedy being to raise the ratio rather than to throttle the caller. source: https://docs.itrsgroup.com/docs/geneos/current/collection/netprobe/configuration/netprobe-memory-protection-settings/ policies: - name: No published request quotas description: >- No per-key, per-account or per-endpoint request allowance exists, because there is no key and no account — the caller and the server are usually inside the same enterprise network. maintainers: - FN: Kin Lane email: kin@apievangelist.com