> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://fyno.io/docs/api-reference/suppression-list/ingest-new/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fyno.io/_mcp/server. # Ingest New POST https://api.fyno.io/v1/{WSID}/suppressions/ingest Content-Type: application/json Bulk add users to the suppression list. Use this endpoint to suppress multiple destinations (e.g. email addresses or phone numbers) on a given channel in a single request, instead of calling [Add User to Suppression List](./add-user-to-suppression-list) once per user. Each item in the `batch` array is one user to suppress. The batch is processed asynchronously, and a `202` response means it has been accepted for processing. Example request: `POST {{API_URL}}/v1/{{WSID}}/suppressions/ingest` Reference: https://fyno.io/docs/api-reference/suppression-list/ingest-new ## Authentication - `Authorization` header (bearer token, required) — Enter your API Key. If you don't have it already, you can create one from the API Keys page within your Fyno account ## Request ### Path parameters - `WSID` (string, required) — Enter your workspace ID. You can obtain this value from the API Keys page within your Fyno account. ### Headers - `version` (enum, required, default: live) — API version identifier. - Allowed values: `live`, `test` ### Body (application/json) This endpoint expects an ingest_suppression_list. - `batch` (list of IngestSuppressionListBatchItems, required) — Enter an array of users to add to the suppression list. Each item suppresses one destination on the specified channel, for example `{"destination": "abcde@fghi.com", "channel": "email"}`. ## Response ### 202 The batch of users has been accepted and will be added to the suppression list asynchronously. - `status` (string, required) ## Errors ### 401 Unauthorized Error API Key or Workspace ID is invalid. User is unauthorised. - `_message` (string, required) - `status` (string, required) ## Types ### IngestSuppressionListBatchItems - `destination` (string, required) — The recipient identifier to suppress, for example `abcde@fghi.com` for the `email` channel or `+49XXXXXXXXX` for the `sms` channel. Enter a phone number with the country code. - `channel` (enum, required) — The notification channel to suppress, for example `email` or `sms`. - Allowed values: `email`, `sms` ## Examples **Request** ```json { "batch": [ { "destination": "abcde@fghi.com", "channel": "email" }, { "destination": "+49XXXXXXXXX", "channel": "sms" } ] } ``` **Response** ```json { "status": "success" } ``` **SDK Code** ```python Suppression List_ingestNew_example import requests url = "https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest" payload = { "batch": [ { "destination": "abcde@fghi.com", "channel": "email" }, { "destination": "+49XXXXXXXXX", "channel": "sms" } ] } headers = { "version": "test", "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript Suppression List_ingestNew_example const url = 'https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest'; const options = { method: 'POST', headers: { version: 'test', Authorization: 'Bearer ', 'Content-Type': 'application/json' }, body: '{"batch":[{"destination":"abcde@fghi.com","channel":"email"},{"destination":"+49XXXXXXXXX","channel":"sms"}]}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Suppression List_ingestNew_example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest" payload := strings.NewReader("{\n \"batch\": [\n {\n \"destination\": \"abcde@fghi.com\",\n \"channel\": \"email\"\n },\n {\n \"destination\": \"+49XXXXXXXXX\",\n \"channel\": \"sms\"\n }\n ]\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("version", "test") req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Suppression List_ingestNew_example require 'uri' require 'net/http' url = URI("https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["version"] = 'test' request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"batch\": [\n {\n \"destination\": \"abcde@fghi.com\",\n \"channel\": \"email\"\n },\n {\n \"destination\": \"+49XXXXXXXXX\",\n \"channel\": \"sms\"\n }\n ]\n}" response = http.request(request) puts response.read_body ``` ```java Suppression List_ingestNew_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest") .header("version", "test") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"batch\": [\n {\n \"destination\": \"abcde@fghi.com\",\n \"channel\": \"email\"\n },\n {\n \"destination\": \"+49XXXXXXXXX\",\n \"channel\": \"sms\"\n }\n ]\n}") .asString(); ``` ```php Suppression List_ingestNew_example request('POST', 'https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest', [ 'body' => '{ "batch": [ { "destination": "abcde@fghi.com", "channel": "email" }, { "destination": "+49XXXXXXXXX", "channel": "sms" } ] }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', 'version' => 'test', ], ]); echo $response->getBody(); ``` ```csharp Suppression List_ingestNew_example using RestSharp; var client = new RestClient("https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest"); var request = new RestRequest(Method.POST); request.AddHeader("version", "test"); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"batch\": [\n {\n \"destination\": \"abcde@fghi.com\",\n \"channel\": \"email\"\n },\n {\n \"destination\": \"+49XXXXXXXXX\",\n \"channel\": \"sms\"\n }\n ]\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift Suppression List_ingestNew_example import Foundation let headers = [ "version": "test", "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = ["batch": [ [ "destination": "abcde@fghi.com", "channel": "email" ], [ "destination": "+49XXXXXXXXX", "channel": "sms" ] ]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.fyno.io/v1/FYXXXXXXXX/suppressions/ingest")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```