# Facteur and Mailisk · Facteur

> What Mailisk publishes about its namespaces, SMS endpoints and free plan, with sources and their date, then what Facteur does.
> https://facteur.eu/en/comparisons/mailisk

/ Comparison

#  Facteur and Mailisk 

 Mailisk receives test emails in namespaces. It also documents SMS testing. Here is what it publishes, then what Facteur does.

 [ See Facteur's pricing ](/en/pricing) [ All comparisons ](/en/comparisons) 

 

 Sources

## What Mailisk publishes

Each line is something Mailisk publishes. It carries the address of the page where we read it and the date we read it. What we could not check is not here. These pages change: read the source again before you decide.

 

1. 01
    
    Mailisk calls its inboxes "namespaces". An email sent to anything@{namespace}.mailisk.net lands in the namespace inbox.
    
     <https://docs.mailisk.com/> · 13/10/2026
2. 02
    
    Each namespace allows unlimited email addresses.
    
     <https://docs.mailisk.com/> · 13/10/2026
3. 03
    
    The inbox search response lists attachments with their id, filename, content type and size.
    
     <https://docs.mailisk.com/> · 13/10/2026
4. 04
    
    The documentation describes an SMS testing section, with endpoints to list numbers, search messages and simulate an SMS.
    
     <https://docs.mailisk.com/> · 13/10/2026
5. 05
    
    The free plan shows 500 received emails, 1 namespace and 1 day of email retention.
    
     <https://mailisk.com/pricing> · 13/10/2026
6. 06
    
    The extra-volume rates start at $0.25 per 1,000 received emails per month, and at $0.05 per SMS per month.
    
     <https://mailisk.com/pricing> · 13/10/2026
7. 07
    
    The FAQ says paid plans temporarily tolerate usage above the limit with no hard cap, and that Mailisk reaches out if it happens often.
    
     <https://mailisk.com/pricing> · 13/10/2026
8. 08
    
    Mailisk's Node client installs with npm install --save-dev mailisk and is built with new MailiskClient({ apiKey }). Its searchInbox(namespace, { to\_addr\_prefix, subject\_includes, ... }) method waits by default until at least one email arrives, five minutes at most.
    
     <https://docs.mailisk.com/guides/nodejs.html> · 25/10/2026
 
 

 Translating your tests

## The same test, with one then the other

Both APIs wait for the message on the server side, so the shape of the test does not change. What changes: the address targets the domain of the Facteur inbox, and the code arrives already extracted from the message.

 

       Before, with Mailisk JavaScript 

 

```
<span class="hl-keyword">const</span> { MailiskClient } = <span class="hl-property">require</span>(<span class="hl-value">'mailisk'</span>);
<span class="hl-keyword">const</span> mailisk = <span class="hl-keyword">new</span> <span class="hl-type">MailiskClient</span>({ <span class="hl-property">apiKey</span>: process.<span class="hl-property">env</span>.<span class="hl-property">MAILISK_API_KEY</span> });

<span class="hl-comment">// searchInbox waits by default until at least one email arrives.</span>
<span class="hl-keyword">const</span> { <span class="hl-property">data</span>: emails } = <span class="hl-keyword">await</span> mailisk.<span class="hl-property">searchInbox</span>(namespace, {
  <span class="hl-property">to_addr_prefix</span>: address,
});

<span class="hl-comment">// The code is still to be found in the body of emails[0].</span>
```

 Every call of Mailisk shown here comes from its documentation: the Sources section gives the page and the date it was read.        After, with Facteur TypeScript 

 

```
<span class="hl-comment">// No Facteur package to install: one HTTP call that waits.</span>
<span class="hl-keyword">const</span> search = <span class="hl-keyword">new</span> <span class="hl-type">URLSearchParams</span>({
  <span class="hl-property">inbox</span>: <span class="hl-value">'j3k9x2mq'</span>,
  <span class="hl-property">sentTo</span>: address,
  <span class="hl-property">wait</span>: <span class="hl-value">'30000'</span>,
});

<span class="hl-keyword">const</span> response = <span class="hl-keyword">await</span> <span class="hl-property">fetch</span>(<span class="hl-value">'https://api.facteur.eu/v1/messages?'</span> + search, {
  <span class="hl-property">headers</span>: { <span class="hl-property">authorization</span>: <span class="hl-value">'Bearer '</span> + process.<span class="hl-property">env</span>.<span class="hl-property">FACTEUR_API_KEY</span> },
});
<span class="hl-keyword">const</span> { messages } = <span class="hl-keyword">await</span> response.<span class="hl-property">json</span>();

<span class="hl-comment">// The code is already extracted, in a field of its own.</span>
<span class="hl-keyword">const</span> code = messages[0].<span class="hl-property">otp</span>;
```

 Facteur publishes no library yet: the test calls the API over HTTP. The developers' portal plays this call against the service.  

 

 The migration, step by step

## Four steps, both services side by side

 

1. Step 01
    
    ### Create an account and an inbox
    
    Each inbox has its own domain. Any address ending with it is accepted from the first message: there is nothing else to set up.
2. Step 02
    
    ### Point your sends at the inbox
    
    In your test scenarios, the recipient address now targets the domain of your Facteur inbox instead of the namespace's.
3. Step 03
    
    ### Replace searchInbox with Facteur's search
    
    A single call waits for the message and returns it with its code in the otp field. The regular expression that looked for the code goes away.
4. Step 04
    
    ### Run the suite, then cancel
    
    Keep both accounts until the suite is green. There is no data to export and no DNS to switch.
 
 

 The switch, in short

## What changes, row by row

Each cell about Mailisk links to the sentence of the sources it comes from. A row that no source lets us write is not in the table.

 

    Topic Facteur Mailisk      Waiting for a message   The search waits up to the delay you ask, five minutes at most, and answers as soon as the message arrives.   searchInbox waits by default, five minutes at most. [source](#claim-client)     Addresses   Any address of the inbox's domain lands in the inbox, with nothing to create.   Any address of the namespace's domain lands in the namespace. [source](#claim-namespace)     Beyond the volume   On paid plans, prepaid packs or pay-as-you-go overage, under a spending cap you set.   Overage tolerated with no hard cap, then a call if it keeps happening. [source](#claim-limits)     SMS   SMS inboxes exist, but the connection to the carrier is not in service: no real SMS arrives today.   An SMS testing section is documented. [source](#claim-sms)    

 

 Facteur

## What Facteur does

These lines describe Facteur as its product pages and help centre give it.

 

01

### One address per test

Everything before the at sign is free. Two tests writing to inscription+run-42 and inscription+run-43 each get their own message, in the same inbox.

 

02

### Wait for the message in one request

The search accepts a wait of five minutes at most. If nothing arrives, it answers an empty list, not an error.

 

03

### The code, already extracted

The otp field holds the most likely one-time code. When nothing announces it, Facteur leaves it empty rather than guess.

 

04

### Reading costs nothing

Only a received, kept message counts against your plan. A test that receives 3 emails and reads them 40 times uses 3.

 

05

### Deleted when its time is up

Each message is deleted when your plan's duration has passed, with its raw file and attachments.

 

06

### Hosted at OVHcloud

The application and its database are hosted at OVHcloud, and billing is in euros. The data centre is in France.

 

07

### SMS are not received yet

The connection to the carrier that delivers SMS is not in service. An assigned number receives no real SMS today.

 







 

 

 Choosing

## Frequently asked questions

 

   When to look at Mailisk? +− Mailisk documents an SMS testing section with endpoints to search messages. At Facteur, the connection to the carrier is not in service. If your tests need SMS right now, check this before you choose.

    How much work is the migration from Mailisk? +− A few minutes per test file: the call to searchInbox becomes Facteur's search, and extracting the code becomes reading the otp field. There is nothing to export: test messages come back on the next run of your continuous integration.

    What happens to the messages already received at Mailisk? +− They stay at Mailisk. They are test messages: they come back on the next run of your suite, which is what keeps the migration light.

    Where are Facteur's prices? +− On the Pricing page, which reads Facteur's grid. No Facteur price is written here.

  

 

  Other comparisons

## The other tools

The same approach for each tool: what it publishes, sourced and dated, then what Facteur does.

 

 [01

### Facteur and Mailtrap

What Mailtrap publishes about its email sandbox, HTML previews and plans, and what Facteur does.

 ](/en/comparisons/mailtrap) [02

### Facteur and MailSlurp

What MailSlurp publishes about its plans, inboxes and phone numbers, and what Facteur does.

 ](/en/comparisons/mailslurp) [03

### Facteur and Mailpit

What Mailpit publishes about its open source software, SMTP server and API, and what Facteur does.

 ](/en/comparisons/mailpit) [04

### Facteur and Mailosaur

What Mailosaur publishes about its plans, its daily limit, its SMS and its API, and what Facteur does.

 ](/en/comparisons/mailosaur) [05

### Migrate from Mailosaur

The mapping of the API calls, one by one, and the ones that have no equivalent at Facteur.

 ](/en/migrate-from-mailosaur)

 

 

 

## Try Facteur without an account

The trial receives a test email, with no sign-up. Prices are on the Pricing page.

 [ Try without an account ](/en/test-an-email) [ See pricing ](/en/pricing)
