<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [bitburner](./bitburner.md) &gt; [CodingContract](./bitburner.codingcontract.md) &gt; [getContract](./bitburner.codingcontract.getcontract.md)

## CodingContract.getContract() method

Get various data about a specific contract.

**Signature:**

```typescript
getContract(filename: string, host?: string): CodingContractObject;
```

## Parameters

<table><thead><tr><th>

Parameter


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

filename


</td><td>

string


</td><td>

Filename of the contract.


</td></tr>
<tr><td>

host


</td><td>

string


</td><td>

_(Optional)_ Hostname/IP of the server containing the contract. Optional. Default to the current server if not provided.


</td></tr>
</tbody></table>

**Returns:**

[CodingContractObject](./bitburner.codingcontractobject.md)

An object containing various data about the contract specified.

## Remarks

RAM cost: 15 GB

The returned object includes the type, data, description as well as methods for getting the number of tries remaining and submitting your answer. Depending on the type of the contract, the data is typed differently. Using type-narrowing, you can get the correct type of the data:

## Example


```js
const contract = ns.codingcontract.getContract(fileName, hostName);
if (contract.type === ns.enums.CodingContractName.FindLargestPrimeFactor) {
  const data = contract.data;
  // ^? data: number
}
```

