# Create or update in bulk Source: https://developer.notocat.com/api-reference/endpoint/contacts/create POST /contacts Learn how to create or update contacts in bulk using the Notocat API. This guide covers the POST /contacts endpoint, allowing you to manage your subscriber data efficiently. The endpoint can be used to create a full list of contacts with Notocat. If a contact already exists, the data will be merged. The contacts can be updated in bulk when provided with IDs or emails that already exist in the database. If the contact does not exist, it will be created with the email provided. **The endpoint accepts a minimum of 1 contact and a maximum of 1000 contacts.** # Delete Contact Source: https://developer.notocat.com/api-reference/endpoint/contacts/delete DELETE /contacts Learn how to delete contacts from your newsletter using the Notocat API. This guide covers the DELETE /contacts endpoint, allowing you to remove unwanted subscriber data efficiently. This endpoint can be used to delete contacts from a workspace in bulk. This action is irreversible. By default, the endpoint will only delete contacts that are not subscribed. If you want to delete all contacts, you can pass the `subscribed` query parameter with the value `true`. # Get Contacts Source: https://developer.notocat.com/api-reference/endpoint/contacts/get GET /contacts Learn how to retrieve a list of contacts from your newsletter using the Notocat API. This guide covers the GET /contacts endpoint, allowing you to access and manage your subscriber data efficiently. # Update a contact Source: https://developer.notocat.com/api-reference/endpoint/contacts/update PUT /contacts/{id} Learn how to update a contact's information using the Notocat API. This guide covers the PUT /contacts/{id} endpoint, allowing you to modify existing contact details efficiently and keep your newsletter subscriber data up-to-date. This endpoint can be used to update a single contact at a time by providing the contact ID. `con_D6zCfeVDaAAT-b9dl9SIE` is the contact ID in the example below. # Create an issue Source: https://developer.notocat.com/api-reference/endpoint/sends/create POST /sends Learn how to create an issue using the Notocat API. This endpoint can be used to create a send from a Notion page. The send will be created with the page's properties and the page's content will be transformed into an issue to be sent. # Send an issue Source: https://developer.notocat.com/api-reference/endpoint/sends/send POST /sends/{id}/send Learn how to send an issue to your subscribers using the Notocat API. This guide covers the POST /sends/{id}/send endpoint, allowing you to send issues to your subscribers efficiently. This endpoint can be used to send an issue to your subscribers. # Create and send an issue in one request Source: https://developer.notocat.com/api-reference/endpoint/sends/send-direct POST /v1/sends/send Learn how to create and send an issue in one request using the Notocat API. This endpoint can be used to create and send an issue in one request. # Send a test email Source: https://developer.notocat.com/api-reference/endpoint/sends/test POST /sends/{id}/test Learn how to send a test email for a send using the Notocat API. This endpoint can be used to send a test email for a send. # Introduction Source: https://developer.notocat.com/api-reference/introduction Explore Notocat's API documentation to integrate newsletter functionality, sync contacts, and automate workflows. Learn about authentication, endpoints, and best practices for leveraging Notocat's powerful features in your applications. ## Welcome Before you can use Notocat's API, you will need to have a Notocat account and a newsletter. You can [create a Notocat account](https://app.notocat.com/signup) and then [create a newsletter](https://app.notocat.com/add-newsletter). Each newsletter comes with a unique newsletter ID that you can use to interact with your data through the API. ## Authentication To authenticate with the API, you need to send your API key in the `Authorization` header. The API key must be prefixed with `Bearer `. The header should look like this: `Authorization: Bearer ` [Click here to get your API key](https://app.notocat.com/user/api) ### Example request ```sh theme={null} curl "https://api.notocat.com/v1/contacts?newsletter_id=" \ -X GET \ -H "Accept: application/json" \ -H "Authorization: Bearer " ``` ## How to find the Newsletter ID You can get the newsletter ID from the URL of your newsletter page in Notocat. Open your newsletter from your dashboard and check the URL in your browser. The newsletter ID starts with `wks_` and has 25 characters like in the picture below: Noto settings # Custom CSS Source: https://developer.notocat.com/guides/custom-css Learn how to customize your Notocat newsletters with custom CSS. Discover available classes, best practices, and examples to enhance your email designs. # Custom CSS for your issues Notocat allows you to modify the visuals of your issues on top of Notion's built-in customization options. One of the options is to add custom CSS to your issues. Read more to learn what are the available classes you can use in the CSS. Please note that the CSS needs to be valid and supported by all the email clients. We recommend using [Can I Email](https://www.caniemail.com/) to check the compatibility of your CSS. A small issue in the CSS can invalidate the entire styling of your issue in some email clients. ## Available CSS classes ### Content blocks | Class | Description | | ------------------------------------------- | ------------------------------------------------------------------------------ | | `nc_paragraph` | Paragraphs, lists, todo lists, callouts, quotes, and text in columns | | `nc_heading1`, `nc_heading2`, `nc_heading3` | Heading blocks (also get index classes, e.g. `nc_heading1_1`, `nc_heading2_2`) | | `nc_code` | Inline code snippets | | `nc_divider` | Divider line (`
`) | | `nc_divider_wrap` | Wrapper around the divider | | `nc_image` | Images (also get index classes, e.g. `nc_image_1`, `nc_image_2`) | | `nc_caption` | Image captions | ### Global index classes Images and headings receive **globally unique index classes** in document order. Use them to target specific elements without affecting others. | Class pattern | Description | | ---------------------------------------------------- | -------------------------------------------------------------------------------- | | `nc_image_1`, `nc_image_2`, `nc_image_3`, … | First, second, third image in the issue (cover image counts as first if present) | | `nc_heading1_1`, `nc_heading2_2`, `nc_heading3_3`, … | First, second, third heading in the issue (any level) | Each element keeps its base class plus the index class, e.g. `nc_image nc_image_1` or `nc_heading2 nc_heading2_2`. Indices are global across the entire HTML, including nested content (lists, columns, etc.). ### Links | Class | Description | | --------- | ----------------------- | | `nc_link` | All links in your issue | ### Callouts & quotes | Class | Description | | ------------------------- | ------------------------------------------ | | `nc_callout_box` | Callout block container | | `nc_callout_box_bordered` | Callout with border (non-background style) | | `nc_quote_box` | Quote block | | `nc_icon_cell` | Callout icon table cell | | `nc_icon_img` | Callout icon image | | `nc_icon_emoji` | Callout emoji icon | ### Columns | Class | Description | | ----------------- | ------------------------------ | | `nc_column` | Column cell | | `nc_column_first` | First column (no left padding) | | `nc_column_last` | Last column (no right padding) | | `nc_column_mid` | Middle column | | `nc_column_row` | Row containing columns | | `nc_columns` | Columns table container | ### Layout & structure | Class | Description | | -------------------- | ------------------------------------------------- | | `nc_body` | Body of the email (contains the main table) | | `nc_full_wrap` | Full-width wrapper table | | `nc_main_table` | Main content table (650px) | | `nc_aside5` | Outer padding | | `nc_aside10` | Inner padding | | `nc_h20` | Header spacing | | `nc_spacing` | Spacing between blocks | | `nc_children_indent` | Indented nested content (e.g. paragraph children) | | `nc_empty_block` | Empty block placeholder | | `nc_line_tight` | Tight line-height (1.2em) for colored text spans | ### Unsubscribe | Class | Description | | ---------------- | ------------------------ | | `nc_unsubscribe` | Unsubscribe link section | ### Notion color classes These classes are applied when you use Notion's text or background colors. Use them to override or extend the default styling. **Text colors** (`nc_text_*`): | Class | Description | | ----------------- | ------------------ | | `nc_text_default` | Default text color | | `nc_text_gray` | Gray text | | `nc_text_brown` | Brown text | | `nc_text_orange` | Orange text | | `nc_text_yellow` | Yellow text | | `nc_text_green` | Green text | | `nc_text_blue` | Blue text | | `nc_text_purple` | Purple text | | `nc_text_pink` | Pink text | | `nc_text_red` | Red text | **Background colors** (`nc_bg_*`): | Class | Description | | ------------------------- | -------------------------- | | `nc_bg_default` | Default (white) background | | `nc_bg_gray-background` | Gray background | | `nc_bg_brown-background` | Brown background | | `nc_bg_orange-background` | Orange background | | `nc_bg_yellow-background` | Yellow background | | `nc_bg_green-background` | Green background | | `nc_bg_blue-background` | Blue background | | `nc_bg_purple-background` | Purple background | | `nc_bg_pink-background` | Pink background | | `nc_bg_red-background` | Red background | ## Examples ### Modifying the spacing between blocks ```css theme={null} .nc_spacing { height: 10px !important; line-height: 10px !important; } ``` ### Changing the links font ```css theme={null} .nc_link { font-size: 16px; font-weight: 600; } ``` ### Changing the font size of the paragraphs ```css theme={null} .nc_paragraph { font-size: 20px; } ``` ### Changing the main heading style ```css theme={null} .nc_heading1 { font-size: 30px; line-height: 26px; padding-top: 1.6em; padding-bottom: 3px; margin-bottom: 5px; font-weight: 600; color: #434343; } ``` ### Targeting specific images or headings by index Use the global index classes to style only certain elements: ```css theme={null} /* Style only the first image differently */ .nc_image_1 { border-radius: 12px; } /* Make the first heading larger than the rest */ .nc_heading1_1 { font-size: 36px; } ``` # Make.com integration Source: https://developer.notocat.com/guides/make-integration Discover how to seamlessly sync your contacts using our Make.com integration. Streamline your workflow and enhance your newsletter management with Notocat. Notocat allows you to sync your contacts with Make.com. You can use our app to sync your contacts with Notocat. ## How to install the app 1. Go to [Make.com](https://www.make.com/) and sign in to your account 2. Access our [Make integration app](https://www.make.com/en/hq/app-invitation/4e69cd14363a023677810a6a21bae48f) 3. Click on the "Add app" button 4. Click on the "Install" button 5. Click on the "Finish" button

Click here to get access to our Make.com app

## How to use the app

Learn how to import your contacts from Airtable to Notocat using our Make.com custom app.

### Modules Overview 1. **Get Contacts** - Retrieves a list of contacts from your Notocat newsletter 2. **Sync Contacts with Notocat** - Create or update contacts in bulk (if the email already exists in Notocat, the contact will be updated) ### Usage Instructions 1. Set up your Make.com Scenario * Add the **Get Contacts** module to retrieve your contacts list from Notocat's newsletter * Add the **Sync Contacts with Notocat** module to push contacts from other sources to your Notocat newsletter 2. Authentication Make sure to authenticate both your source application and Notocat within Make.com to allow data exchange. For Notocat, you’ll need your API key from your account settings - [https://app.notocat.com/user/api](https://app.notocat.com/user/api) 3. Customize Your Sync * You can map fields from your source contacts to match your Notocat fields (e.g., Name, Email, Custom Fields). * Use filters or conditional logic within Make.com if you want to sync only specific contacts. ### Troubleshooting Tips * Ensure your Notocat API key is valid * Ensure the newsletter ID always starts with `wks_` * If contacts are not syncing, check for errors in your Make.com scenario and ensure proper field mapping. * Contact Notocat support if issues persist at [hello@notocat.com](mailto:hello@notocat.com) # Introduction Source: https://developer.notocat.com/introduction Learn how to use Notocat, the powerful Notion-to-newsletter tool. Discover API integration, contact syncing, and custom CSS for beautiful newsletters. Hero Light Hero Dark ## Get started here Learn about the Notocat API and how to sync contacts Learn how to customize the look and feel of your issues