## POST `/admin/projects/:projectId/bot`

Creates a new [Medplum Bot](/content/docs/index.html). Posting to this endpoint creates a [`Bot`](/content/docs/api/fhir/medplum/bot/index.html) resource and a corresponding [`ProjectMembership`](/content/docs/api/fhir/medplum/projectmembership/index.html) resource.

### Parameters

```ts
{

name: string;

description?: string;

accessPolicy?: Reference<AccessPolicy>;

}
```

### Example request

- Typescript
- CLI
- cURL

```ts
await medplum.post('admin/projects/:projectId/bot', {

name: 'Hello World Bot',

description: 'Hello world',

accessPolicy: {

reference: 'AccessPolicy/access-policy-id',

},

});
```

```bash
medplum post admin/projects/:projectId/bot \

'{

"name": "Hello World Bot",

"description": "Hello world",

"accessPolicy": {

"reference": "AccessPolicy/access-policy-id"

}

}'
```

```bash
curl https://api.medplum.com/admin/projects/:projectId/bot \

-H "Authorization: Bearer $TOKEN" \

-H "Content-Type: application/json" \

-d '{

"name": "Hello World Bot",

"description": "Hello world",

"accessPolicy": {

"reference": "AccessPolicy/:access-policy-id"

}'
```

### Example Response

```ts
{

resourceType: 'Bot',

name: 'Hello World Bot',

description: 'Hello world',

runtimeVersion: 'awslambda',

sourceCode: {

contentType: 'text/typescript',

title: 'index.ts',

url: 'Binary/:uuid'

},

id: ':bot-uuid',

meta: {

project: ':projectId',

//...

},

}
```

- [POST `/admin/projects/:projectId/bot`](/content/docs/api/project-admin/bot#post-adminprojectsprojectidbot/index.html)  
  - [Parameters](/content/docs/api/project-admin/bot#parameters/index.html)  
  - [Example request](/content/docs/api/project-admin/bot#example-request/index.html)  
  - [Example Response](/content/docs/api/project-admin/bot#example-response/index.html)
