Match only rows which doesn't satisfy the filter. not_
expects you to use the raw PostgREST syntax for the filter values.
.not_.in_('id', '(5,6,7)') # Use `()` for `in` filter
.not_.contains('arraycol', '\{"a","b"\}') # Use `\{\}` for array values
response = (
supabase.table("countries")
.select("*")
.not_.is_("name", "null")
.execute()
)