### GET /automations Source: https://sendfox.com/developer/docs Retrieves a list of all automations. ```APIDOC ## GET /automations ### Description Returns a list of automations associated with the user. ### Method GET ### Endpoint https://api.sendfox.com/automations ### Response #### Success Response (200) - **data** (array) - List of automations - **current_page** (integer) - Current page number - **total** (integer) - Total count - **per_page** (integer) - Items per page #### Response Example { "data": [], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### GET /campaigns Source: https://sendfox.com/developer/docs Returns a paginated list of campaigns. ```APIDOC ## GET /campaigns ### Description Returns a paginated list of campaigns (100 per page). ### Method GET ### Endpoint https://api.sendfox.com/campaigns ### Response #### Success Response (200) - **data** (array) - List of campaigns - **current_page** (integer) - Current page number - **total** (integer) - Total count #### Response Example { "data": [], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### POST /campaigns - Create a new campaign Source: https://sendfox.com/developer/docs Creates a new campaign as a draft. You can optionally schedule it for sending by providing the `scheduled_at` parameter. Subject lines cannot start with 'RE:' or 'FWD:'. At least one list is required if `scheduled_at` is provided. ```APIDOC ## POST /campaigns ### Description Creates a campaign as a draft. To send it, use the send endpoint or provide scheduled_at. Subject lines cannot start with "RE:" or "FWD:". At least one list is required if scheduled_at is provided. ### Method POST ### Endpoint https://api.sendfox.com/campaigns ### Parameters #### Request Body - **title** (string) - Required - <= 191 characters - **subject** (string) - Required - <= 191 characters - **html** (string) - Required - <= 1000000 characters - Email body HTML content - **from_name** (string) - Required - <= 191 characters - **from_email** (string) - Required - - <= 191 characters - **scheduled_at** (string) - Optional - - Schedule send time (omit for draft). Must include at least one list. - **lists** (array of integers) - Optional - Array of list IDs to send to ### Request Example ```json { "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "lists": [ 0 ] } ``` ### Response #### Success Response (201) Campaign created successfully - **id** (integer) - **title** (string) - **subject** (string) - **html** (string) - **from_name** (string) - **from_email** (string) - **scheduled_at** (string) - **sent_at** (string) - **timezone** (string) - **created_at** (string) - **updated_at** (string) #### Error Response (403) Forbidden (not subscribed or cannot schedule) #### Error Response (422) Validation error or configuration required (e.g., timezone not set) ### Response Example (201) ```json { "id": 0, "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "timezone": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### GET /me Source: https://sendfox.com/developer/docs Retrieves the current authenticated user's information. ```APIDOC ## GET /me ### Description Returns current user information. ### Method GET ### Endpoint https://api.sendfox.com/me ### Responses #### Success Response (200) - **id** (integer) - User ID. - **name** (string) - User's name. - **email** (string) - User's email address. - **contacts_count** (integer) - Number of contacts the user has. - **contact_limit** (integer) - The user's contact limit. - **created_at** (string) - Timestamp of account creation (ISO 8601 format). - **updated_at** (string) - Timestamp of last account update (ISO 8601 format). #### Error Response (401) Unauthorized ### Response Example (200) ```json { "id": 0, "name": "string", "email": "user@example.com", "contacts_count": 0, "contact_limit": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### GET /domains Source: https://sendfox.com/developer/docs Lists all sender domains associated with the user. ```APIDOC ## GET /domains ### Description Returns a paginated list of the user's whitelabel/sender domains. ### Method GET ### Endpoint https://api.sendfox.com/domains ### Response #### Success Response (200) - **data** (array) - List of domains - **current_page** (integer) - **total** (integer) ``` -------------------------------- ### GET /lists Source: https://sendfox.com/developer/docs Retrieves a list of contact lists. ```APIDOC ## GET /lists ### Description List contact lists. ### Method GET ### Endpoint https://api.sendfox.com/lists ### Parameters #### Query Parameters - **query** (string) - Optional - Search query for filtering lists. ### Response #### Success Response (200) - **data** (array) - List of contact lists - **current_page** (integer) - Current page number - **total** (integer) - Total count - **per_page** (integer) - Items per page ``` -------------------------------- ### GET /domains/{id} Source: https://sendfox.com/developer/docs Retrieves domain details including DNS records needed for verification. ```APIDOC ## GET /domains/{id} ### Description Returns domain details including DNS records needed for verification. ### Method GET ### Endpoint https://api.sendfox.com/domains/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the domain. ### Responses #### Success Response (200) - **id** (integer) - Description - **domain** (string) - Description - **sendgrid_whitelabel_domain_id** (integer) - Description - **validated_at** (string) - Description (ISO 8601 format) - **dns** (object) - Description - **created_at** (string) - Description (ISO 8601 format) - **updated_at** (string) - Description (ISO 8601 format) #### Error Response (403) Forbidden #### Error Response (404) Domain not found ### Response Example (200) ```json { "id": 0, "domain": "string", "sendgrid_whitelabel_domain_id": 0, "validated_at": "2019-08-24T14:15:22Z", "dns": { }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### GET /contacts/{id}/activity Source: https://sendfox.com/developer/docs Returns paginated email deliverables and contact-level engagement summary. ```APIDOC ## GET /contacts/{id}/activity ### Description Returns paginated email deliverables and contact-level engagement summary. ### Method GET ### Endpoint https://api.sendfox.com/contacts/{id}/activity ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the contact. ### Response #### Success Response (200) - **contact** (object) - Engagement summary - **deliverables** (object) - Paginated list of deliverables #### Response Example { "contact": { "last_sent_at": "2019-08-24T14:15:22Z", "last_opened_at": "2019-08-24T14:15:22Z", "last_clicked_at": "2019-08-24T14:15:22Z", "unsubscribed_at": "2019-08-24T14:15:22Z", "bounced_at": "2019-08-24T14:15:22Z" }, "deliverables": { "data": [] } } ``` -------------------------------- ### GET /lists/{id} Source: https://sendfox.com/developer/docs Returns details for a specific contact list. ```APIDOC ## GET /lists/{id} ### Description Returns list details including average open and click rates. ### Method GET ### Endpoint https://api.sendfox.com/lists/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the list. ``` -------------------------------- ### GET /campaigns/{id} - Get a specific campaign Source: https://sendfox.com/developer/docs Retrieves the details of a specific campaign using its ID. ```APIDOC ## GET /campaigns/{id} ### Description Retrieves the details of a specific campaign. ### Method GET ### Endpoint https://api.sendfox.com/campaigns/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign to retrieve ### Response #### Success Response (200) Successful response - **id** (integer) - **title** (string) - **subject** (string) - **html** (string) - **from_name** (string) - **from_email** (string) - **scheduled_at** (string) - **sent_at** (string) - **timezone** (string) - **created_at** (string) - **updated_at** (string) #### Error Response (403) Forbidden #### Error Response (404) Campaign not found ### Response Example (200) ```json { "id": 0, "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "timezone": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### Create Campaign Payload Source: https://sendfox.com/developer/docs Use this JSON payload to create a new campaign as a draft. Subject lines cannot start with 'RE:' or 'FWD:'. At least one list is required if scheduled_at is provided. ```json { "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "lists": [ 0 ] } ``` -------------------------------- ### GET /contacts/unsubscribed Source: https://sendfox.com/developer/docs List all unsubscribed contacts. ```APIDOC ## GET /contacts/unsubscribed ### Description Returns a list of unsubscribed contacts. ### Method GET ### Endpoint https://api.sendfox.com/contacts/unsubscribed ### Parameters #### Query Parameters - **query** (string) - Optional - Search query for filtering contacts. ### Response #### Success Response (200) - **data** (array) - List of contacts - **current_page** (integer) - Current page number - **total** (integer) - Total count #### Response Example { "data": [], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### GET /contact-fields Source: https://sendfox.com/developer/docs Lists all custom contact fields defined by the user. Returns 20 fields per page. ```APIDOC ## GET /contact-fields ### Description Returns custom contact fields defined by the user (20 per page). ### Method GET ### Endpoint https://api.sendfox.com/contact-fields ### Responses #### Success Response (200) - **data** (array) - An array of contact field objects. - **id** (integer) - Field ID. - **label** (string) - Human-readable field label. - **name** (string) - Auto-generated field name (slug). - **type** (string) - Field type (e.g., 'text', 'number', 'date'). - **current_page** (integer) - The current page number. - **total** (integer) - The total number of contact fields. - **per_page** (integer) - The number of fields per page. #### Error Response (401) Unauthorized ### Response Example (200) ```json { "data": [ { "id": 0, "label": "string", "name": "string", "type": "text" } ], "current_page": 0, "total": 0, "per_page": 0 } ``` ``` -------------------------------- ### Get a specific form Source: https://sendfox.com/developer/docs Retrieves the details of a specific form using its ID. ```APIDOC ## Get a specific form ### Description Retrieves the details of a specific form using its ID. ### Method GET ### Endpoint /forms/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The unique identifier of the form. ### Response #### Success Response (200) - **id** (integer) - The unique identifier of the form. - **title** (string) - The title of the form. - **landing_page_id** (integer) - The ID of the landing page associated with the form. - **redirect_url** (string) - The URL to redirect to after form submission. - **gdpr_required** (boolean) - Indicates if GDPR consent is required. - **url** (string) - The URL of the form. - **lists** (array) - An array of lists associated with the form. - **id** (integer) - The unique identifier of the list. - **name** (string) - The name of the list. - **user_id** (integer) - The ID of the user who owns the list. - **average_email_open_percent** (number) - The average email open percentage for the list. - **average_email_click_percent** (number) - The average email click percentage for the list. - **created_at** (string) - The timestamp when the list was created. - **updated_at** (string) - The timestamp when the list was last updated. - **created_at** (string) - The timestamp when the form was created. - **updated_at** (string) - The timestamp when the form was last updated. #### Response Example ```json { "id": 0, "title": "string", "landing_page_id": 0, "redirect_url": "string", "gdpr_required": true, "url": "string", "lists": [ { "id": 0, "name": "string", "user_id": 0, "average_email_open_percent": 0, "average_email_click_percent": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### GET /contacts Source: https://sendfox.com/developer/docs Retrieves a paginated list of contacts, with options to filter by query, subscription status, or email address. ```APIDOC ## GET /contacts ### Description Returns a paginated list of contacts (100 per page). ### Method GET ### Endpoint https://api.sendfox.com/contacts ### Parameters #### Query Parameters - **query** (string) - Optional - Search query for filtering contacts - **unsubscribed** (boolean) - Optional - Filter unsubscribed contacts - **email** (string) - Optional - Filter by specific email ### Response #### Success Response (200) - **data** (array) - List of contact objects - **current_page** (integer) - Current page number - **total** (integer) - Total number of contacts - **per_page** (integer) - Contacts per page #### Response Example { "data": [ { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### GET /contacts/{id} Source: https://sendfox.com/developer/docs Retrieves the details of a specific contact by their unique ID. ```APIDOC ## GET /contacts/{id} ### Description Get a specific contact by ID. ### Method GET ### Endpoint https://api.sendfox.com/contacts/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The contact ID ### Response #### Success Response (200) - **id** (integer) - Contact ID - **email** (string) - Contact email #### Response Example { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### GET /campaigns/{id}/stats Source: https://sendfox.com/developer/docs Returns sent count, open/click/bounce/unsubscribe/spam counts and rates for a specific campaign. ```APIDOC ## GET /campaigns/{id}/stats ### Description Returns sent count, open/click/bounce/unsubscribe/spam counts and rates. ### Method GET ### Endpoint https://api.sendfox.com/campaigns/{id}/stats ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign. ### Response #### Success Response (200) - **sent_count** (integer) - Total sent - **unique_open_count** (integer) - Unique opens - **unique_click_count** (integer) - Unique clicks - **unsubscribe_count** (integer) - Unsubscribes - **bounce_count** (integer) - Bounces - **spam_count** (integer) - Spam reports - **open_rate** (number) - Open rate - **click_rate** (number) - Click rate - **unsubscribe_rate** (number) - Unsubscribe rate - **bounce_rate** (number) - Bounce rate - **spam_rate** (number) - Spam rate ``` -------------------------------- ### GET /contact-fields/{id} Source: https://sendfox.com/developer/docs Retrieves a specific custom contact field by its ID. ```APIDOC ## GET /contact-fields/{id} ### Description Retrieves a specific contact field. ### Method GET ### Endpoint https://api.sendfox.com/contact-fields/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the contact field to retrieve. ### Responses #### Success Response (200) - **id** (integer) - Field ID. - **label** (string) - Human-readable field label. - **name** (string) - Auto-generated field name (slug). - **type** (string) - Field type (e.g., 'text', 'number', 'date'). #### Error Response (403) Forbidden #### Error Response (404) Contact field not found ### Response Example (200) ```json { "id": 0, "label": "string", "name": "string", "type": "text" } ``` ``` -------------------------------- ### Get a specific automation Source: https://sendfox.com/developer/docs Retrieves details of a specific automation, including its triggers, items, and associated campaign statistics. ```APIDOC ## GET /automations/{id} ### Description Returns automation with triggers, items, and campaign stats. ### Method GET ### Endpoint https://api.sendfox.com/automations/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the automation to retrieve. ### Responses #### Success Response (200) - **id** (integer) - The unique identifier for the automation. - **user_id** (integer) - The ID of the user who owns the automation. - **title** (string) - The title of the automation. - **active** (boolean) - Indicates if the automation is currently active. - **created_at** (string) - The timestamp when the automation was created (ISO 8601 format). - **updated_at** (string) - The timestamp when the automation was last updated (ISO 8601 format). - **automation_triggers** (array) - A list of triggers associated with the automation. - **id** (integer) - The ID of the trigger. - **automation_id** (integer) - The ID of the automation this trigger belongs to. - **type** (string) - The type of trigger (e.g., "apply_list"). - **list_id** (integer) - The ID of the list associated with the trigger. - **campaign_id** (integer) - The ID of the campaign associated with the trigger. - **created_at** (string) - The timestamp when the trigger was created (ISO 8601 format). - **updated_at** (string) - The timestamp when the trigger was last updated (ISO 8601 format). - **automation_items** (array) - A list of items (steps) within the automation. - **id** (integer) - The ID of the automation item. - **automation_id** (integer) - The ID of the automation this item belongs to. - **campaign_id** (integer) - The ID of the campaign associated with this item. - **delay_hours** (integer) - The delay in hours before this item is executed. - **send_order** (integer) - The order in which this item is sent. - **campaign** (object) - Details of the campaign associated with this item. - **id** (integer) - The ID of the campaign. - **title** (string) - The title of the campaign. - **subject** (string) - The subject line of the campaign. - **html** (string) - The HTML content of the campaign. - **from_name** (string) - The sender's name. - **from_email** (string) - The sender's email address. - **scheduled_at** (string) - The timestamp when the campaign is scheduled to be sent (ISO 8601 format). - **sent_at** (string) - The timestamp when the campaign was sent (ISO 8601 format). - **timezone** (string) - The timezone of the campaign. - **created_at** (string) - The timestamp when the campaign was created (ISO 8601 format). - **updated_at** (string) - The timestamp when the campaign was last updated (ISO 8601 format). - **created_at** (string) - The timestamp when the automation item was created (ISO 8601 format). - **updated_at** (string) - The timestamp when the automation item was last updated (ISO 8601 format). #### Response Example ```json { "id": 0, "user_id": 0, "title": "string", "active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "automation_triggers": [ { "id": 0, "automation_id": 0, "type": "apply_list", "list_id": 0, "campaign_id": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "automation_items": [ { "id": 0, "automation_id": 0, "campaign_id": 0, "delay_hours": 0, "send_order": 0, "campaign": { "id": 0, "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "timezone": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ] } ``` #### Error Responses - **401** Unauthorized - **404** Automation not found ``` -------------------------------- ### GET /lists/{list_id}/contacts Source: https://sendfox.com/developer/docs Retrieves contacts within a specific list. ```APIDOC ## GET /lists/{list_id}/contacts ### Description Get contacts in a list. ### Method GET ### Endpoint https://api.sendfox.com/lists/{list_id}/contacts ### Parameters #### Path Parameters - **list_id** (integer) - Required - The ID of the list. #### Query Parameters - **query** (string) - Optional - Search query for filtering contacts. ``` -------------------------------- ### POST /automations Source: https://sendfox.com/developer/docs Creates a new automation. ```APIDOC ## POST /automations ### Description Creates a new automation with the specified trigger type and configuration. ### Method POST ### Endpoint https://api.sendfox.com/automations ### Parameters #### Request Body - **title** (string) - Required - Automation title - **trigger_type** (string) - Optional - Enum: "apply_list", "open_campaign", "click_campaign" - **trigger_list_id** (integer) - Optional - Required if trigger_type is apply_list - **trigger_campaign_id** (integer) - Optional - Required if trigger_type is open_campaign or click_campaign - **active** (boolean) - Optional - Automation active status ### Request Example { "title": "string", "trigger_type": "apply_list", "trigger_list_id": 0, "trigger_campaign_id": 0, "active": true } ``` -------------------------------- ### SendGrid Current User Information Response Sample Source: https://sendfox.com/developer/docs A sample JSON response containing details about the currently authenticated user. ```json { "id": 0, "name": "string", "email": "user@example.com", "contacts_count": 0, "contact_limit": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### POST /campaigns/{id}/send - Send a campaign immediately Source: https://sendfox.com/developer/docs Schedules a draft campaign for immediate sending. The campaign must not already be sent or scheduled, have at least one list assigned, and the user must not be in a warmup/throttle period. All existing abuse prevention applies automatically. ```APIDOC ## POST /campaigns/{id}/send ### Description Schedules a draft campaign for immediate sending. The campaign must: * Not already be sent or scheduled * Have at least one list assigned * The user must not be in a warmup/throttle period All existing abuse prevention applies automatically: content approval workflow, sending throttles, spam detection, and bounce rate monitoring. ### Method POST ### Endpoint https://api.sendfox.com/campaigns/{id}/send ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign to send ``` -------------------------------- ### SendFox API Create Contact Response Sample Source: https://sendfox.com/developer/docs This is a sample JSON response upon successful creation of a contact. ```json { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### SendGrid Domain Deletion Response Sample Source: https://sendfox.com/developer/docs A sample JSON response indicating successful deletion of a domain. ```json { "message": "string" } ``` -------------------------------- ### POST /contacts Source: https://sendfox.com/developer/docs Creates a new contact in the system, optionally assigning them to specific lists and setting custom fields. ```APIDOC ## POST /contacts ### Description Creates a new contact. ### Method POST ### Endpoint https://api.sendfox.com/contacts ### Parameters #### Request Body - **email** (string) - Required - Contact email address - **first_name** (string) - Optional - Contact first name - **last_name** (string) - Optional - Contact last name - **ip_address** (string) - Optional - IP address - **lists** (array) - Optional - Array of list IDs to add the contact to - **contact_fields** (array) - Optional - Array of objects with name and value ### Request Example { "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "lists": [0], "contact_fields": [{"name": "string", "value": "string"}] } ### Response #### Success Response (200) - **id** (integer) - Created contact ID - **email** (string) - Contact email #### Response Example { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### POST /lists Source: https://sendfox.com/developer/docs Creates a new contact list. ```APIDOC ## POST /lists ### Description Create a new contact list. ### Method POST ### Endpoint https://api.sendfox.com/lists ### Parameters #### Request Body - **name** (string) - Required - Name of the list. ### Response #### Success Response (200) - **id** (integer) - List ID - **name** (string) - List name - **user_id** (integer) - User ID - **average_email_open_percent** (number) - Avg open rate - **average_email_click_percent** (number) - Avg click rate - **created_at** (string) - Creation timestamp - **updated_at** (string) - Update timestamp ``` -------------------------------- ### SendGrid Domain Response Sample Source: https://sendfox.com/developer/docs This is a sample JSON response for domain-related API calls, including details like ID, domain name, validation status, and timestamps. ```json { "id": 0, "domain": "string", "sendgrid_whitelabel_domain_id": 0, "validated_at": "2019-08-24T14:15:22Z", "dns": { }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### Campaign Creation Response (201) Source: https://sendfox.com/developer/docs Successful response when a campaign is created. Includes campaign details and timestamps. ```json { "id": 0, "title": "string", "subject": "string", "html": "string", "from_name": "string", "from_email": "user@example.com", "scheduled_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "timezone": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### SendFox API List Contacts Response Sample Source: https://sendfox.com/developer/docs This is a sample JSON response for the 'List contacts' endpoint, showing the structure of paginated contact data. ```json { "data": [ { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### POST /contacts/batch Source: https://sendfox.com/developer/docs Import up to 1,000 contacts in a single request. Creates new contacts or updates existing ones. ```APIDOC ## POST /contacts/batch ### Description Import up to 1,000 contacts in a single request. Creates new contacts or updates existing ones. ### Method POST ### Endpoint https://api.sendfox.com/contacts/batch ### Parameters #### Request Body - **contacts** (Array of objects) - Required - List of contacts to import (max 1000). ### Request Example { "contacts": [ { "email": "user@example.com", "first_name": "string", "last_name": "string", "lists": [0] } ] } ### Response #### Success Response (200) - **created** (integer) - Number of contacts created - **updated** (integer) - Number of contacts updated #### Response Example { "created": 0, "updated": 0 } ``` -------------------------------- ### POST /domains Source: https://sendfox.com/developer/docs Adds a new sender domain. ```APIDOC ## POST /domains ### Description Adds a new sender domain and creates the corresponding SendGrid whitelabel domain. ### Method POST ### Endpoint https://api.sendfox.com/domains ### Parameters #### Request Body - **domain** (string) - Required - Domain name (e.g., example.com). ### Response #### Success Response (201) - Domain created successfully ``` -------------------------------- ### Sendfox API Response Sample for Created Form Source: https://sendfox.com/developer/docs This JSON response confirms the successful creation of a new form. It includes the form's details, such as its ID, title, and associated lists. ```json { "id": 0, "title": "string", "landing_page_id": 0, "redirect_url": "string", "gdpr_required": true, "url": "string", "lists": [ { "id": 0, "name": "string", "user_id": 0, "average_email_open_percent": 0, "average_email_click_percent": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` -------------------------------- ### Create a new form Source: https://sendfox.com/developer/docs Creates a new subscription form linked to one or more lists. Free users are limited to one form. ```APIDOC ## Create a new form ### Description Creates a new subscription form linked to one or more lists. Free users are limited to one form. ### Method POST ### Endpoint /forms ### Parameters #### Request Body - **title** (string) - Required - Maximum 191 characters. - **lists** (array of integers) - Required - An array of list IDs to attach the form to. - **redirect_url** (string) - Optional - URL to redirect to after subscription. - **gdpr_required** (boolean) - Optional - Whether the GDPR consent checkbox is required. ### Request Example ```json { "title": "string", "lists": [ 0 ], "redirect_url": "http://example.com", "gdpr_required": true } ``` ### Response #### Success Response (201) - **id** (integer) - The unique identifier of the created form. - **title** (string) - The title of the form. - **landing_page_id** (integer) - The ID of the landing page associated with the form. - **redirect_url** (string) - The URL to redirect to after form submission. - **gdpr_required** (boolean) - Indicates if GDPR consent is required. - **url** (string) - The URL of the form. - **lists** (array) - An array of lists associated with the form. - **id** (integer) - The unique identifier of the list. - **name** (string) - The name of the list. - **user_id** (integer) - The ID of the user who owns the list. - **average_email_open_percent** (number) - The average email open percentage for the list. - **average_email_click_percent** (number) - The average email click percentage for the list. - **created_at** (string) - The timestamp when the list was created. - **updated_at** (string) - The timestamp when the list was last updated. - **created_at** (string) - The timestamp when the form was created. - **updated_at** (string) - The timestamp when the form was last updated. #### Response Example ```json { "id": 0, "title": "string", "landing_page_id": 0, "redirect_url": "string", "gdpr_required": true, "url": "string", "lists": [ { "id": 0, "name": "string", "user_id": 0, "average_email_open_percent": 0, "average_email_click_percent": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ``` ``` -------------------------------- ### SendGrid Create Contact Field Request Sample Source: https://sendfox.com/developer/docs A sample JSON payload for creating a new custom contact field. Requires a label and a contact field type ID. ```json { "label": "string", "contact_field_type_id": "string" } ``` -------------------------------- ### Sendfox API Response Sample for Forms List Source: https://sendfox.com/developer/docs This JSON response provides a list of forms associated with the account. Each form includes its ID, title, associated lists, and URLs. ```json { "data": [ { "id": 0, "title": "string", "landing_page_id": 0, "redirect_url": "string", "gdpr_required": true, "url": "string", "lists": [ { "id": 0, "name": "string", "user_id": 0, "average_email_open_percent": 0, "average_email_click_percent": 0, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### Sendfox API Response Sample for Contacts Source: https://sendfox.com/developer/docs This is a sample JSON response when retrieving a list of contacts. It includes details like ID, email, names, IP address, and timestamps. ```json { "data": [ { "id": 0, "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "unsubscribed_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "current_page": 0, "total": 0, "per_page": 0 } ``` -------------------------------- ### POST /campaigns/{id}/send Source: https://sendfox.com/developer/docs Schedules a campaign for sending. ```APIDOC ## POST /campaigns/{id}/send ### Description Schedules a campaign for sending. ### Method POST ### Endpoint https://api.sendfox.com/campaigns/{id}/send ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the campaign to send. ### Response #### Success Response (200) - **id** (integer) - Campaign ID - **title** (string) - Campaign title - **subject** (string) - Campaign subject - **html** (string) - Campaign HTML content - **from_name** (string) - Sender name - **from_email** (string) - Sender email - **scheduled_at** (string) - Scheduled time - **sent_at** (string) - Sent time - **timezone** (string) - Timezone - **created_at** (string) - Creation timestamp - **updated_at** (string) - Update timestamp ``` -------------------------------- ### SendFox API Create Contact Request Sample Source: https://sendfox.com/developer/docs This JSON payload is used to create a new contact in SendFox. Ensure all required fields are included. ```json { "email": "user@example.com", "first_name": "string", "last_name": "string", "ip_address": "string", "lists": [ 0 ], "contact_fields": [ { "name": "string", "value": "string" } ] } ``` -------------------------------- ### POST /contact-fields Source: https://sendfox.com/developer/docs Creates a new custom contact field. ```APIDOC ## POST /contact-fields ### Description Creates a custom field for contacts. The `name` is auto-generated from the `label` as a slug. Valid field type IDs: text, number, date. ### Method POST ### Endpoint https://api.sendfox.com/contact-fields ### Parameters #### Request Body - **label** (string) - Required - Human-readable field label (max 191 characters). - **contact_field_type_id** (string) - Required - UUID of the field type (e.g., 'text', 'number', or 'date'). ### Responses #### Success Response (201) - **id** (integer) - The ID of the newly created contact field. - **label** (string) - The label of the contact field. - **name** (string) - The auto-generated name (slug) of the contact field. - **type** (string) - The type of the contact field. #### Error Response (422) Validation error. ### Request Example (Payload) ```json { "label": "string", "contact_field_type_id": "string" } ``` ### Response Example (201) ```json { "id": 0, "label": "string", "name": "string", "type": "text" } ``` ```