REST API

Build on your
Flexie data.

A standard REST API over everything in your workspace: contacts, leads, deals, cases, tasks, and your own custom records. Predictable URLs, API-key auth, and JSON in and out, with 170 endpoints across 12 resource groups.

OpenAPI 1.0.1 (Swagger 2.0). Import it into Postman, Insomnia, or your own client.

Quickstart

Your first request, in a minute.

Every workspace has its own API host. Send your key with each request and you're talking to your live data.

Base URL

https://your-subdomain.flexie.io/api

Your API URL is your subdomain, then /api/, then the endpoint, for example /api/leads.

Authentication

Send your key in the apikey header, or as an ?apikey= query parameter. Your key lives in your account settings, under API Settings. Prefer OAuth 2.0? That's supported too.

List contacts
curl https://your-subdomain.flexie.io/api/contacts \
  -H "apikey: YOUR_API_KEY"
Create a contact
curl -X POST https://your-subdomain.flexie.io/api/contacts/new \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "firstname": "Jane",
    "lastname": "Doe",
    "email": "jane@acme.com"
  }'

Every response is JSON, including errors.

Conventions

Predictable by design.

Resource URLs

Each resource has a clean path. List at /api/contacts, fetch one at /api/contacts/{id}.

Standard verbs

GET to read, POST to create, PUT to update, DELETE to remove.

JSON everywhere

Requests and responses are JSON, and so are errors, so you can parse one shape every time.

Status codes

200
Request succeeded.
204
Succeeded with nothing to return (e.g. a delete).
400
Bad request: something in the input was malformed.
404
No record matched the request.
500
Something went wrong on our side.

Endpoint reference

170 endpoints, grouped by what they touch.

Click any endpoint for a copy-ready request example. Field names are the default set, so an account with custom fields will use its own aliases. Download the OpenAPI spec for full response schemas.

Contact

People you do business with, plus contact lists and segmentation.

22 endpoints
GET/api/contact/lists
curl "https://your-subdomain.flexie.io/api/contact/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/contact/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/contact/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/contact/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/contact/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts
curl "https://your-subdomain.flexie.io/api/contacts?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/contacts
curl -X POST "https://your-subdomain.flexie.io/api/contacts" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/contacts/{id}
curl "https://your-subdomain.flexie.io/api/contacts/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/contacts/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/contacts/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "david.okafor@example.com",
    "company": "Bluewave Logistics Ltd",
    "city": "Manchester",
    "status": "Nurture",
    "source": "Referral"
  }'
DELETE/api/contacts/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/contacts/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/contacts/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/contacts/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/{id}/lists
curl "https://your-subdomain.flexie.io/api/contacts/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/{id}/notes
curl "https://your-subdomain.flexie.io/api/contacts/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/{id}/workflows
curl "https://your-subdomain.flexie.io/api/contacts/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/contacts/edit
curl -X POST "https://your-subdomain.flexie.io/api/contacts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "david.okafor@example.com",
    "company": "Bluewave Logistics Ltd",
    "city": "Manchester",
    "status": "Nurture",
    "source": "Referral"
  }'
PUT/api/contacts/edit
curl -X PUT "https://your-subdomain.flexie.io/api/contacts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "david.okafor@example.com",
    "company": "Bluewave Logistics Ltd",
    "city": "Manchester",
    "status": "Nurture",
    "source": "Referral"
  }'
PATCH/api/contacts/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/contacts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "david.okafor@example.com",
    "company": "Bluewave Logistics Ltd",
    "city": "Manchester",
    "status": "Nurture",
    "source": "Referral"
  }'
POST/api/contacts/identify
curl -X POST "https://your-subdomain.flexie.io/api/contacts/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/contacts/list/fields
curl "https://your-subdomain.flexie.io/api/contacts/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/list/fields/categories
curl "https://your-subdomain.flexie.io/api/contacts/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/list/filters
curl "https://your-subdomain.flexie.io/api/contacts/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/contacts/list/lists
curl "https://your-subdomain.flexie.io/api/contacts/list/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/contacts/new
curl -X POST "https://your-subdomain.flexie.io/api/contacts/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Ms.",
    "first_name": "David",
    "last_name": "Okafor",
    "email": "david.okafor@example.com",
    "phone": "+442071838750",
    "company": "Bluewave Logistics",
    "city": "London",
    "country": "United Kingdom",
    "status": "New",
    "source": "Meeting"
  }'
POST/api/contacts/search
curl -X POST "https://your-subdomain.flexie.io/api/contacts/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'

Lead

Inbound and outbound leads, from capture through qualification.

23 endpoints
GET/api/lead/lists
curl "https://your-subdomain.flexie.io/api/lead/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/lead/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/lead/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/lead/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/lead/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads
curl "https://your-subdomain.flexie.io/api/leads?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/leads
curl -X POST "https://your-subdomain.flexie.io/api/leads" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/leads/{id}
curl "https://your-subdomain.flexie.io/api/leads/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/leads/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/leads/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "maria.hernandez@example.com",
    "company": "Northwind Trading LLC",
    "city": "Dallas",
    "status": "Qualify",
    "source": "Referral"
  }'
DELETE/api/leads/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/leads/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/leads/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/leads/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/{id}/lists
curl "https://your-subdomain.flexie.io/api/leads/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/{id}/notes
curl "https://your-subdomain.flexie.io/api/leads/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/{id}/workflows
curl "https://your-subdomain.flexie.io/api/leads/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/leads/edit
curl -X POST "https://your-subdomain.flexie.io/api/leads/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "maria.hernandez@example.com",
    "company": "Northwind Trading LLC",
    "city": "Dallas",
    "status": "Qualify",
    "source": "Referral"
  }'
PUT/api/leads/edit
curl -X PUT "https://your-subdomain.flexie.io/api/leads/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "maria.hernandez@example.com",
    "company": "Northwind Trading LLC",
    "city": "Dallas",
    "status": "Qualify",
    "source": "Referral"
  }'
PATCH/api/leads/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/leads/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "maria.hernandez@example.com",
    "company": "Northwind Trading LLC",
    "city": "Dallas",
    "status": "Qualify",
    "source": "Referral"
  }'
POST/api/leads/identify
curl -X POST "https://your-subdomain.flexie.io/api/leads/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/leads/list/fields
curl "https://your-subdomain.flexie.io/api/leads/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/list/fields/categories
curl "https://your-subdomain.flexie.io/api/leads/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/list/filters
curl "https://your-subdomain.flexie.io/api/leads/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/list/lists
curl "https://your-subdomain.flexie.io/api/leads/list/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/leads/list/owners
curl "https://your-subdomain.flexie.io/api/leads/list/owners" \
  -H "apikey: YOUR_API_KEY"
POST/api/leads/new
curl -X POST "https://your-subdomain.flexie.io/api/leads/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Mr.",
    "first_name": "Maria",
    "last_name": "Hernandez",
    "email": "maria.hernandez@example.com",
    "phone": "+15125550148",
    "company": "Northwind Trading",
    "city": "Austin",
    "state": "TX",
    "country": "United States",
    "status": "New",
    "source": "Website"
  }'
POST/api/leads/search
curl -X POST "https://your-subdomain.flexie.io/api/leads/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'

Accounts

Companies and organizations, with their related records.

22 endpoints
GET/api/account/lists
curl "https://your-subdomain.flexie.io/api/account/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/account/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/account/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/account/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/account/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts
curl "https://your-subdomain.flexie.io/api/accounts?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/accounts
curl -X POST "https://your-subdomain.flexie.io/api/accounts" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/accounts/{id}
curl "https://your-subdomain.flexie.io/api/accounts/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/accounts/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/accounts/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Trading LLC",
    "status": "Qualify",
    "annual_revenue": 5200000,
    "employees": 145
  }'
DELETE/api/accounts/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/accounts/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/accounts/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/accounts/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/{id}/lists
curl "https://your-subdomain.flexie.io/api/accounts/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/{id}/notes
curl "https://your-subdomain.flexie.io/api/accounts/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/{id}/workflows
curl "https://your-subdomain.flexie.io/api/accounts/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/accounts/edit
curl -X POST "https://your-subdomain.flexie.io/api/accounts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Trading LLC",
    "status": "Qualify",
    "annual_revenue": 5200000,
    "employees": 145
  }'
PUT/api/accounts/edit
curl -X PUT "https://your-subdomain.flexie.io/api/accounts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Trading LLC",
    "status": "Qualify",
    "annual_revenue": 5200000,
    "employees": 145
  }'
PATCH/api/accounts/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/accounts/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Trading LLC",
    "status": "Qualify",
    "annual_revenue": 5200000,
    "employees": 145
  }'
POST/api/accounts/identify
curl -X POST "https://your-subdomain.flexie.io/api/accounts/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/accounts/list/fields
curl "https://your-subdomain.flexie.io/api/accounts/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/list/fields/categories
curl "https://your-subdomain.flexie.io/api/accounts/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/list/filters
curl "https://your-subdomain.flexie.io/api/accounts/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/accounts/list/lists
curl "https://your-subdomain.flexie.io/api/accounts/list/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/accounts/new
curl -X POST "https://your-subdomain.flexie.io/api/accounts/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Trading LLC",
    "status": "New",
    "email": "info@northwindtrading.com",
    "website": "https://www.northwindtrading.com",
    "phone": "+15125550100",
    "industry": "Retail",
    "annual_revenue": 4500000,
    "vat_number": "GB123456789",
    "employees": 120,
    "billing_city": "Austin",
    "billing_country": "United States"
  }'
POST/api/accounts/search
curl -X POST "https://your-subdomain.flexie.io/api/accounts/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'

Deals

Opportunities moving through your sales pipelines.

31 endpoints
GET/api/deal/lists
curl "https://your-subdomain.flexie.io/api/deal/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/deal/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/deal/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/deal/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/deal/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals
curl "https://your-subdomain.flexie.io/api/deals?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/deals
curl -X POST "https://your-subdomain.flexie.io/api/deals" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/deals/{id}
curl "https://your-subdomain.flexie.io/api/deals/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/deals/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/deals/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Enterprise license renewal",
    "amount": 15000,
    "close_date": "2026-10-15",
    "stage_id": 3
  }'
DELETE/api/deals/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/deals/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/deals/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/deals/42" \
  -H "apikey: YOUR_API_KEY"
POST/api/deals/{id}/associations
curl -X POST "https://your-subdomain.flexie.io/api/deals/42/associations" \
  -H "apikey: YOUR_API_KEY"
DELETE/api/deals/{id}/associations
curl -X DELETE "https://your-subdomain.flexie.io/api/deals/42/associations" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/{id}/lists
curl "https://your-subdomain.flexie.io/api/deals/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/{id}/notes
curl "https://your-subdomain.flexie.io/api/deals/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/{id}/workflows
curl "https://your-subdomain.flexie.io/api/deals/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/deals/edit
curl -X POST "https://your-subdomain.flexie.io/api/deals/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Enterprise license renewal",
    "amount": 15000,
    "close_date": "2026-10-15",
    "stage_id": 3
  }'
PUT/api/deals/edit
curl -X PUT "https://your-subdomain.flexie.io/api/deals/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Enterprise license renewal",
    "amount": 15000,
    "close_date": "2026-10-15",
    "stage_id": 3
  }'
PATCH/api/deals/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/deals/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Enterprise license renewal",
    "amount": 15000,
    "close_date": "2026-10-15",
    "stage_id": 3
  }'
POST/api/deals/identify
curl -X POST "https://your-subdomain.flexie.io/api/deals/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/deals/list/fields
curl "https://your-subdomain.flexie.io/api/deals/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/list/fields/categories
curl "https://your-subdomain.flexie.io/api/deals/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/list/filters
curl "https://your-subdomain.flexie.io/api/deals/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/deals/list/lists
curl "https://your-subdomain.flexie.io/api/deals/list/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/deals/new
curl -X POST "https://your-subdomain.flexie.io/api/deals/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Enterprise license renewal",
    "amount": 12500,
    "close_date": "2026-09-30",
    "pipeline_id": 1,
    "stage_id": 2,
    "owner_id": 3
  }'
POST/api/deals/search
curl -X POST "https://your-subdomain.flexie.io/api/deals/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'
GET/api/pipelines
curl "https://your-subdomain.flexie.io/api/pipelines?limit=30" \
  -H "apikey: YOUR_API_KEY"
POST/api/pipelines
curl -X POST "https://your-subdomain.flexie.io/api/pipelines" \
  -H "apikey: YOUR_API_KEY"
GET/api/pipelines/{id}
curl "https://your-subdomain.flexie.io/api/pipelines/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/pipelines/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/pipelines/42" \
  -H "apikey: YOUR_API_KEY"
DELETE/api/pipelines/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/pipelines/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/pipelines/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/pipelines/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/stages
curl "https://your-subdomain.flexie.io/api/stages?limit=30" \
  -H "apikey: YOUR_API_KEY"

Cases

Support tickets and service requests, end to end.

26 endpoints
GET/api/case/lists
curl "https://your-subdomain.flexie.io/api/case/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/case/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/case/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/case/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/case/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases
curl "https://your-subdomain.flexie.io/api/cases?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/cases
curl -X POST "https://your-subdomain.flexie.io/api/cases" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/cases/{id}
curl "https://your-subdomain.flexie.io/api/cases/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/cases/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/cases/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Login page returns 500 error",
    "priority": "Medium",
    "public_status": "In Process",
    "internalStatus": "open"
  }'
DELETE/api/cases/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/cases/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/cases/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/cases/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/{id}/lists
curl "https://your-subdomain.flexie.io/api/cases/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/{id}/notes
curl "https://your-subdomain.flexie.io/api/cases/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/{id}/replies
curl "https://your-subdomain.flexie.io/api/cases/42/replies" \
  -H "apikey: YOUR_API_KEY"
POST/api/cases/{id}/replies
curl -X POST "https://your-subdomain.flexie.io/api/cases/42/replies" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Thanks for reaching out. We have reset your account, so you should be able to log in now."
  }'
GET/api/cases/{id}/workflows
curl "https://your-subdomain.flexie.io/api/cases/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/cases/edit
curl -X POST "https://your-subdomain.flexie.io/api/cases/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Login page returns 500 error",
    "priority": "Medium",
    "public_status": "In Process",
    "internalStatus": "open"
  }'
PUT/api/cases/edit
curl -X PUT "https://your-subdomain.flexie.io/api/cases/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Login page returns 500 error",
    "priority": "Medium",
    "public_status": "In Process",
    "internalStatus": "open"
  }'
PATCH/api/cases/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/cases/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Login page returns 500 error",
    "priority": "Medium",
    "public_status": "In Process",
    "internalStatus": "open"
  }'
POST/api/cases/identify
curl -X POST "https://your-subdomain.flexie.io/api/cases/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/cases/list/fields
curl "https://your-subdomain.flexie.io/api/cases/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/list/fields/categories
curl "https://your-subdomain.flexie.io/api/cases/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/list/filters
curl "https://your-subdomain.flexie.io/api/cases/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/cases/list/lists
curl "https://your-subdomain.flexie.io/api/cases/list/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/cases/new
curl -X POST "https://your-subdomain.flexie.io/api/cases/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Login page returns 500 error",
    "source": "Email",
    "category": "Bug",
    "priority": "High",
    "public_status": "New Opened",
    "internalStatus": "open",
    "owner_id": 3
  }'
GET/api/cases/replies/{identifier}
curl "https://your-subdomain.flexie.io/api/cases/replies/REF-1042" \
  -H "apikey: YOUR_API_KEY"
POST/api/cases/replies/{identifier}
curl -X POST "https://your-subdomain.flexie.io/api/cases/replies/REF-1042" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": 3
  }'
POST/api/cases/search
curl -X POST "https://your-subdomain.flexie.io/api/cases/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'

Tasks

To-dos and activities assigned across your team.

10 endpoints
GET/api/tasks
curl "https://your-subdomain.flexie.io/api/tasks?limit=30" \
  -H "apikey: YOUR_API_KEY"
POST/api/tasks
curl -X POST "https://your-subdomain.flexie.io/api/tasks" \
  -H "apikey: YOUR_API_KEY"
GET/api/tasks/{id}
curl "https://your-subdomain.flexie.io/api/tasks/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/tasks/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/tasks/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "task": "Call the customer to confirm renewal terms (rescheduled)",
    "due_date": "2026-06-26 10:00",
    "is_completed": false
  }'
DELETE/api/tasks/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/tasks/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/tasks/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/tasks/42" \
  -H "apikey: YOUR_API_KEY"
POST/api/tasks/{id}/complete
curl -X POST "https://your-subdomain.flexie.io/api/tasks/42/complete" \
  -H "apikey: YOUR_API_KEY"
POST/api/tasks/{id}/incomplete
curl -X POST "https://your-subdomain.flexie.io/api/tasks/42/incomplete" \
  -H "apikey: YOUR_API_KEY"
GET/api/tasks/list/categories
curl "https://your-subdomain.flexie.io/api/tasks/list/categories" \
  -H "apikey: YOUR_API_KEY"
POST/api/tasks/new
curl -X POST "https://your-subdomain.flexie.io/api/tasks/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "task": "Call the customer to confirm renewal terms",
    "owner_id": 3,
    "due_date": "2026-06-25 14:00",
    "association_type": "contact",
    "association_id": 47,
    "reminder_type": "email",
    "remind_minutes": 30
  }'

Notes

Free-form notes attached to any record.

6 endpoints
POST/api/notes/{entityType}/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/notes/contact/17" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Discussed renewal terms and next steps with the customer.",
    "type": "call",
    "datetime": "2026-06-23T14:00:00+00:00"
  }'
DELETE/api/notes/{entityType}/{entityId}
curl -X DELETE "https://your-subdomain.flexie.io/api/notes/contact/17" \
  -H "apikey: YOUR_API_KEY"
GET/api/notes/{id}
curl "https://your-subdomain.flexie.io/api/notes/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/notes/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/notes/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Updated: renewal confirmed, contract sent for signature.",
    "type": "meeting"
  }'
DELETE/api/notes/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/notes/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/notes/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/notes/42" \
  -H "apikey: YOUR_API_KEY"

Emails

Email messages tied to your contacts and deals.

2 endpoints
GET/api/emails
curl "https://your-subdomain.flexie.io/api/emails?limit=30" \
  -H "apikey: YOUR_API_KEY"
GET/api/emails/{id}
curl "https://your-subdomain.flexie.io/api/emails/42" \
  -H "apikey: YOUR_API_KEY"

Custom entities

Your own record types, modeled to fit your business.

22 endpoints
GET/api/ce/{tableName}
curl "https://your-subdomain.flexie.io/api/ce/your_table" \
  -H "apikey: YOUR_API_KEY"
POST/api/ce/{tableName}
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "type": "text",
        "alias": "email",
        "value": {
          "operator": "like",
          "input": "acme.com"
        },
        "strict": false,
        "starts": false,
        "ends": false
      }
    ],
    "start": 0,
    "limit": 30,
    "orderBy": "date_modified",
    "orderByDir": "DESC"
  }'
GET/api/ce/{tableName}/{id}
curl "https://your-subdomain.flexie.io/api/ce/your_table/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/ce/{tableName}/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/ce/your_table/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Renewal 2026 (revised)",
    "status": "won",
    "amount": 5200
  }'
DELETE/api/ce/{tableName}/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/ce/your_table/42" \
  -H "apikey: YOUR_API_KEY"
PATCH/api/ce/{tableName}/{id}
curl -X PATCH "https://your-subdomain.flexie.io/api/ce/your_table/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/{id}/lists
curl "https://your-subdomain.flexie.io/api/ce/your_table/42/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/{id}/notes
curl "https://your-subdomain.flexie.io/api/ce/your_table/42/notes" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/{id}/workflows
curl "https://your-subdomain.flexie.io/api/ce/your_table/42/workflows" \
  -H "apikey: YOUR_API_KEY"
POST/api/ce/{tableName}/edit
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Renewal 2026 (revised)",
    "status": "won",
    "amount": 5200
  }'
PUT/api/ce/{tableName}/edit
curl -X PUT "https://your-subdomain.flexie.io/api/ce/your_table/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Renewal 2026 (revised)",
    "status": "won",
    "amount": 5200
  }'
PATCH/api/ce/{tableName}/edit
curl -X PATCH "https://your-subdomain.flexie.io/api/ce/your_table/edit" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Renewal 2026 (revised)",
    "status": "won",
    "amount": 5200
  }'
POST/api/ce/{tableName}/identify
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/identify" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "unique_field": "email",
    "unique_field_value": "david.okafor@example.com"
  }'
GET/api/ce/{tableName}/list/fields
curl "https://your-subdomain.flexie.io/api/ce/your_table/list/fields" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/list/fields/categories
curl "https://your-subdomain.flexie.io/api/ce/your_table/list/fields/categories" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/list/filters
curl "https://your-subdomain.flexie.io/api/ce/your_table/list/filters" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/list/lists
curl "https://your-subdomain.flexie.io/api/ce/your_table/list/lists" \
  -H "apikey: YOUR_API_KEY"
GET/api/ce/{tableName}/lists
curl "https://your-subdomain.flexie.io/api/ce/your_table/lists" \
  -H "apikey: YOUR_API_KEY"
POST/api/ce/{tableName}/lists/{id}/add/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/lists/42/add/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/ce/{tableName}/lists/{id}/remove/{entityId}
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/lists/42/remove/17" \
  -H "apikey: YOUR_API_KEY"
POST/api/ce/{tableName}/new
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Renewal 2026",
    "status": "open",
    "amount": 4500
  }'
POST/api/ce/{tableName}/search
curl -X POST "https://your-subdomain.flexie.io/api/ce/your_table/search" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "condition": "AND",
      "rules": [
        {
          "field": "email",
          "operator": "contains",
          "value": "acme.com"
        },
        {
          "condition": "OR",
          "rules": [
            {
              "field": "date_added",
              "operator": "is",
              "value": "this_month"
            },
            {
              "field": "owner_id",
              "operator": "is_empty"
            }
          ]
        }
      ]
    },
    "orderBy": "date_modified",
    "orderByDir": "DESC",
    "page": 1,
    "limit": 50
  }'

Reports

Saved reports and the data behind them.

4 endpoints
GET/api/reports
curl "https://your-subdomain.flexie.io/api/reports?limit=30" \
  -H "apikey: YOUR_API_KEY"
GET/api/reports/{id}
curl "https://your-subdomain.flexie.io/api/reports/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/reports/{id}/data
curl "https://your-subdomain.flexie.io/api/reports/42/data" \
  -H "apikey: YOUR_API_KEY"
POST/api/reports/{id}/data
curl -X POST "https://your-subdomain.flexie.io/api/reports/42/data" \
  -H "apikey: YOUR_API_KEY"

Users

The people in your Flexie workspace.

1 endpoint
GET/api/users
curl "https://your-subdomain.flexie.io/api/users?limit=30" \
  -H "apikey: YOUR_API_KEY"

Dynamic endpoints

The URLs that start a workflow, and everything you need to call one.

1 endpoint
GET/api/dynamic_endpoints
curl "https://your-subdomain.flexie.io/api/dynamic_endpoints?limit=30" \
  -H "apikey: YOUR_API_KEY"