# Verifly Make Custom App Blueprint

This is a Make Apps builder blueprint for a private or public Verifly custom app.

## Base

```json
{
  "baseUrl": "https://verifly.email/api/v1",
  "headers": {
    "Authorization": "Bearer {{connection.apiKey}}",
    "Content-Type": "application/json"
  }
}
```

## Connection

Connection type: API key.

Parameter:

```json
[
  {
    "name": "apiKey",
    "type": "password",
    "label": "Verifly API Key",
    "required": true
  }
]
```

Test request:

```json
{
  "url": "/credits",
  "method": "GET",
  "response": {
    "metadata": {
      "type": "email",
      "value": "Verifly"
    }
  }
}
```

## Module: Verify Email

Communication:

```json
{
  "url": "/verify",
  "method": "GET",
  "qs": {
    "email": "{{parameters.email}}"
  },
  "response": {
    "output": "{{body}}"
  }
}
```

Mappable parameters:

```json
[
  {
    "name": "email",
    "type": "email",
    "label": "Email",
    "required": true
  }
]
```

Interface:

```json
[
  { "name": "email", "type": "email", "label": "Email" },
  { "name": "status", "type": "text", "label": "Status" },
  { "name": "deliverable", "type": "boolean", "label": "Deliverable" },
  { "name": "disposable", "type": "boolean", "label": "Disposable" },
  { "name": "role", "type": "boolean", "label": "Role Account" },
  { "name": "catch_all", "type": "boolean", "label": "Catch-all" }
]
```

## Module: Clean Email List

Communication:

```json
{
  "url": "/clean",
  "method": "POST",
  "body": {
    "emails": "{{split(parameters.emails; newline)}}"
  },
  "response": {
    "output": "{{body}}"
  }
}
```

Mappable parameters:

```json
[
  {
    "name": "emails",
    "type": "text",
    "label": "Emails",
    "required": true,
    "multiline": true
  }
]
```

Interface:

```json
[
  { "name": "success", "type": "boolean", "label": "Success" },
  { "name": "original_count", "type": "uinteger", "label": "Original Count" },
  { "name": "cleaned_count", "type": "uinteger", "label": "Cleaned Count" },
  { "name": "removed_count", "type": "uinteger", "label": "Removed Count" },
  { "name": "emails", "type": "array", "label": "Cleaned Emails" }
]
```

## Publish Path

1. Create a private app in Make Apps builder.
2. Add the API-key connection and two modules above.
3. Create test scenarios for both modules.
4. Publish to generate an invite link.
5. Request app review only after the private app works and docs are live.
