--- id: rpc title: "Stored Procedures: rpc()" slug: rpc --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; You can call stored procedures as a "Remote Procedure Call". That's a fancy way of saying that you can put some logic into your database then call it from anywhere. It's especially useful when the logic rarely changes - like password resets and updates. ```js const { data, error } = await supabase .rpc('hello_world') } ``` ```py # Not yet implemented ``` ## Parameters ## Examples ### Call a stored procedure This is an example invoking a stored procedure. ```js const { data, error } = await supabase .rpc('hello_world') } ``` ```py # Not yet implemented ``` ### With Parameters ```js const { data, error } = await supabase .rpc('echo_city', { name: 'The Shire' }) } ``` ```py # Not yet implemented ``` ### Bulk call ```js const { data, error } = await supabase .rpc('echo_city', [ { name: 'The Shire' }, { name: 'Mordor' } ]) } ``` ```py # Not yet implemented ``` ### With filters. Stored procedures that return tables can also be combined with [Modifiers](/docs/client/using-modifiers) and [Filters](/docs/client/using-filters). ```js const { data, error } = await supabase .rpc('echo_all_cities') .eq('name', 'The Shire') ``` ```py # Not yet implemented ```