---title: Task---Access the Task API. You can instantiate a [Task.Client](./task-client.mdx) to receive tasks from a different application. Please check [Task Events](./task-client.mdx#events) for the full list of events that a [Task.Client](./task-client.mdx) can subscribe to.#### ExampleThe following example listens for incoming tasks.javascriptimport { Task } from @signalwire/realtime-api;const client = new Task.Client({ project: , token: , contexts: [office],});client.on(task.received, (payload) => { console.log(Task Received, payload); // Do something with the payload...});From a different process, even on a different machine, you can then send tasks:jsimport { Task } from @signalwire/realtime-api;await Task.send({ project: , token: , context: office, message: { hello: [world, true] },});## Classes- [Client](./task-client.mdx)## Functions### sendâ–¸ Const **send**(params): PromiseSend a job to your Task Client in a specific context.#### Parameters| Name | Type | Description || :--------------- | :---------------------------- | :------------------------------------------------------------------ || params | Object | - || params.context | string | Context to send the task to. || params.message | Record | Message to send. || params.project | string | SignalWire project id, e.g. a10d8a9f-2166-4e82-56ff-118bc3a4840f. || params.token | string | SignalWire project token, e.g. PT9e5660c101...a360079c9. |#### ReturnsPromise#### ExampleSending a task with a message to then make an outbound Call. Please note that the call is _not_ performed automatically: your [Task.Client](./task-client.mdx) gives you back your payload, which you should interpret by your own custom logic.jsconst message = { action: call, from: +18881112222 to: +18881113333}await Task.send({ project: , token: , context: office, message: message,})