<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo" -->

---
title: API filtering is now generally available | daily.dev
description: ngrok's API now supports server-side filtering of list resources via a new filter parameter, eliminating the need to page through entire result sets and filter...
canonical: https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: API filtering is now generally available | daily.dev
og:description: ngrok's API now supports server-side filtering of list resources via a new filter parameter, eliminating the need to page through entire result sets and filter...
og:url: https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo
og:image: https://api.daily.dev/og/posts/W5MgFzhfo.png
og:image:alt: API filtering is now generally available
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API filtering is now generally available

**[ngrok Blog](https://daily.dev/sources/ngrok)** · 2 min read · 0 upvotes · 0 comments

## Summary

ngrok's API now supports server-side filtering of list resources via a new filter parameter, eliminating the need to page through entire result sets and filter client-side. The filter language is Common Expression Language (CEL), the same language already used in ngrok's Traffic Policy rules, supporting logical operators, comparisons, substring checks, and size/emptiness checks. Documentation covers filterable fields per resource and usage examples.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ngrok.com/blog/api-filtering-is-now-ga>

## Questions this post answers

### How do I filter list resources in the ngrok API instead of paging through everything?

The ngrok API now supports a filter query parameter on every list resource, letting you specify a predicate expression evaluated server-side. For example, filtering the /endpoints resource with obj.type == "cloud" && obj.created_at > timestamp(time.now).subtract("7d") returns only cloud endpoints created in the last week, avoiding client-side pagination and filtering.

_Developers wiring up ngrok integrations can track API changes like this via daily.dev._

### What query language does ngrok use for its new API filter parameter?

It uses CEL, the Common Expression Language, the same expression language already used in ngrok's Traffic Policy rules. Supported features include logical operators (&&, ||, !), comparison operators (<, <=, ==, !=, >=, >), substring checks like startsWith(), contains(), and endsWith(), and size or emptiness checks such as size() and == null.

_Anyone evaluating CEL-based filtering options can follow related API tooling updates on daily.dev._

---

Tags: [#devtools](https://daily.dev/tags/devtools), [#architecture](https://daily.dev/tags/architecture), [#rest-api](https://daily.dev/tags/rest-api)

[View this post on daily.dev](https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"API filtering is now generally available","url":"https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo"},"datePublished":"2026-08-23T07:21:10.687Z","dateModified":"2026-08-23T07:24:39.869Z","description":"ngrok's API now supports server-side filtering of list resources via a new filter parameter, eliminating the need to page through entire result sets and filter...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/72f7c606961ae13389365cebd4b35552?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/72f7c606961ae13389365cebd4b35552?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"ngrok Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ngrok Blog","logo":"https://media.daily.dev/image/upload/s--718XXxvE--/f_auto,q_auto/v1787469610/logos/ngrok?_a=BAMAMicg0","url":"https://daily.dev/sources/ngrok"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"devtools,architecture,rest-api","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ngrok Blog","item":"https://daily.dev/sources/ngrok"},{"@type":"ListItem","position":3,"name":"API filtering is now generally available"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/api-filtering-is-now-generally-available-w5mgfzhfo#faq","mainEntity":[{"@type":"Question","name":"How do I filter list resources in the ngrok API instead of paging through everything?","acceptedAnswer":{"@type":"Answer","text":"The ngrok API now supports a filter query parameter on every list resource, letting you specify a predicate expression evaluated server-side. For example, filtering the /endpoints resource with obj.type == \"cloud\" && obj.created_at > timestamp(time.now).subtract(\"7d\") returns only cloud endpoints created in the last week, avoiding client-side pagination and filtering. Developers wiring up ngrok integrations can track API changes like this via daily.dev."}},{"@type":"Question","name":"What query language does ngrok use for its new API filter parameter?","acceptedAnswer":{"@type":"Answer","text":"It uses CEL, the Common Expression Language, the same expression language already used in ngrok's Traffic Policy rules. Supported features include logical operators (&&, ||, !), comparison operators (<, <=, ==, !=, >=, >), substring checks like startsWith(), contains(), and endsWith(), and size or emptiness checks such as size() and == null. Anyone evaluating CEL-based filtering options can follow related API tooling updates on daily.dev."}}]}
```

