| --key <key>required | string | The /providers/<key>/... path and the provider value stored on each message; lowercase, fixed after creation.Example: sendgrid |
| --name <name>required | string | The provider's name, shown on messages and in pickers.Example: SendGrid |
| --accent <accent>required | string | #rrggbb, used on its badge.Example: #1a82e2
|
| --enabledrequired | boolean | Off providers answer nothing; their paths get SendMock's native 404. --no-enabled sets it to false. |
| --host <host> | string | The provider's API host, used on the provider port to tell apart providers that share a path; null when not needed.Example: api.sendgrid.com |
| --credentials <credentials>required | ProviderCredential[] (JSON) | The credentials your app is configured with.Example: [{"name":"api_key","value":"SG.test_key_123","is_secret":true}] |
| --check-credentialsrequired | boolean | Off by default: any credentials are accepted. On: wrong ones get the provider's unauthorized answer. --no-check-credentials sets it to false. |
| --operations <operations>required | ProviderOperation[] (JSON) | The requests it answers.Example: [{"kind":"send","method":"POST","path":"/v3/{domain}/messages","request_format":"multipart"}] |
| --field-mapping <field-mapping>required | ProviderFieldMapping[] (JSON) | Where each part of a sent message is read from; anything else is kept as metadata.Example: [{"part":"to","source":"personalizations[0].to[*].email"}] |
| --validation-rules <validation-rules>required | ProviderValidationRule[] (JSON) | The checks run on each send, in order.Example: [{"part":"to","check":"required","max_length":null,"error_kind":"missing_field"}] |
| --success-response <success-response>required | ProviderResponseTemplate (JSON) | The answer to a request that passes every check. |
| --error-responses <error-responses>required | ProviderErrorResponse[] (JSON) | The answer for each kind of error.Example: [{"kind":"missing_field","status":202,"headers":[{"name":"X-Message-Id","template":"{{ message.provider_id }}"}],"body":"{\"id\": \"{{ message.provider_id }}\"}"}] |
| --message-id-template <message-id-template>required | string | The provider's id for each message, a template.Example: <{{ uuid() }}@sendmock.local> |
| --callback-template-key <callback-template-key> | string | The webhook template its status callbacks and inbound messages are sent with; null sends none.Example: sendgrid-event |
| --status-names <status-names>required | object (JSON) | The provider's name for each SendMock status. |
| --outcome-error-codes <outcome-error-codes>required | object (JSON) | SMS only: the provider's error code for each delivery outcome, so test numbers fail with its own codes. |