SDKs
Swift SDK
Install and use the MisarReach Swift SDK — lead finder, SSE job streaming, deals/pipeline CRM, and multi-channel outreach.
Official Swift SDK for MisarReach — lead finder (23 sources), multi-channel outreach, and CRM (deals, pipeline, sales agents). Authenticates with an mrk_ API key against https://api.misar.io/reach/api.
Install
Swift Package Manager:
.package(url: "https://github.com/misarai/misarreach-swift", from: "1.0.0")Then add "MisarReach" to your target dependencies.
Configure
import MisarReach
let client = MisarReachClient(apiKey: "mrk_...")Lead search + SSE stream
// Start an async lead search
let job = try await client.leads.search(["query": "saas founders", "limit": 25])
let jobId = job["jobId"] as! String
// Stream job progress over Server-Sent Events
try await client.leads.streamJob(jobId: jobId) { event in
switch event.event {
case "progress": print("found:", event.data["total_found"] ?? 0)
case "complete": print("done")
case "error": print("error:", event.data["error"] ?? "")
default: break
}
}Deals & channels
_ = try await client.deals.create(["leadEmail": "cto@acme.com", "value": 5000])
let pipeline = try await client.pipeline.get()
let channels = try await client.channels.status()
_ = try await client.channels.connectSms(["number": "+1..."])Resources
leads · ads · autopilot · campaigns · channels · contacts · conversations · deals · pipeline · salesAgent · settings · workspaces.
Errors
Throws MisarReachError:
.apiError(status:message:code:)— non-2xx (401, 403, 404, 4xx, 5xx).rateLimit(message:balance:freeRemaining:upgrade:)— HTTP 429.networkError(message:)— transport failure / retries exhausted
Retryable statuses (429, 500, 502, 503, 504) are retried with exponential backoff (maxRetries, default 3).
See the API Reference and SSE stream.