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 142 endpoints across 15 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

142 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.

16 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"
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"
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"
  }'
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/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"
  }'

Lead

Inbound and outbound leads, from capture through qualification.

16 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"
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"
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"
  }'
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/lists
curl "https://your-subdomain.flexie.io/api/leads/list/lists" \
  -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"
  }'

Accounts

Companies and organizations, with their related records.

16 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"
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"
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
  }'
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/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"
  }'

Deals

Opportunities moving through your sales pipelines.

16 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"
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"
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
  }'
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/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
  }'

Cases

Support tickets and service requests, end to end.

20 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"
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"
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"
  }'
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/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
  }'

Tasks

To-dos and activities assigned across your team.

9 endpoints
GET/api/tasks
curl "https://your-subdomain.flexie.io/api/tasks?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/tasks
curl -X POST "https://your-subdomain.flexie.io/api/tasks" \
  -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/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"
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.

4 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"
  }'
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"

Emails

Email messages tied to your contacts and deals.

4 endpoints
GET/api/emails
curl "https://your-subdomain.flexie.io/api/emails?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/emails
curl -X POST "https://your-subdomain.flexie.io/api/emails" \
  -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/emails/{id}
curl "https://your-subdomain.flexie.io/api/emails/42" \
  -H "apikey: YOUR_API_KEY"
POST/api/emails/{id}/send
curl -X POST "https://your-subdomain.flexie.io/api/emails/42/send" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 100
  }'

Custom entities

Your own record types, modeled to fit your business.

16 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"
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"
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
  }'
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/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
  }'

Workflows

Trigger and manage automation from the outside.

6 endpoints
GET/api/workflows
curl "https://your-subdomain.flexie.io/api/workflows?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/workflows
curl -X POST "https://your-subdomain.flexie.io/api/workflows" \
  -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/workflows/{id}
curl "https://your-subdomain.flexie.io/api/workflows/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/workflows/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/workflows/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "VIP lead onboarding",
    "description": "Send a welcome sequence to new VIP leads",
    "category": 12,
    "isPublished": true,
    "runtime": "async"
  }'
DELETE/api/workflows/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/workflows/42" \
  -H "apikey: YOUR_API_KEY"
GET/api/workflows/list/categories
curl "https://your-subdomain.flexie.io/api/workflows/list/categories" \
  -H "apikey: YOUR_API_KEY"

Forms

The forms that capture data into Flexie.

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

Pages

Landing pages served by Flexie.

3 endpoints
GET/api/pages
curl "https://your-subdomain.flexie.io/api/pages?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/pages
curl -X POST "https://your-subdomain.flexie.io/api/pages" \
  -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/pages/{id}
curl "https://your-subdomain.flexie.io/api/pages/42" \
  -H "apikey: YOUR_API_KEY"

Reports

Saved reports and the data behind them.

3 endpoints
GET/api/reports
curl "https://your-subdomain.flexie.io/api/reports?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/reports
curl -X POST "https://your-subdomain.flexie.io/api/reports" \
  -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/reports/{id}
curl "https://your-subdomain.flexie.io/api/reports/42" \
  -H "apikey: YOUR_API_KEY"

Users

The people in your Flexie workspace.

8 endpoints
GET/api/users
curl "https://your-subdomain.flexie.io/api/users?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/users
curl -X POST "https://your-subdomain.flexie.io/api/users" \
  -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/users/{id}
curl "https://your-subdomain.flexie.io/api/users/42" \
  -H "apikey: YOUR_API_KEY"
PUT/api/users/{id}
curl -X PUT "https://your-subdomain.flexie.io/api/users/42" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "John",
    "lastName": "Doe",
    "position": "Senior Sales Manager",
    "role": 3,
    "isPublished": true
  }'
DELETE/api/users/{id}
curl -X DELETE "https://your-subdomain.flexie.io/api/users/42" \
  -H "apikey: YOUR_API_KEY"
POST/api/users/{id}/permission
curl -X POST "https://your-subdomain.flexie.io/api/users/42/permission" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "permissions": [
      "lead:leads:viewown",
      "lead:leads:editown"
    ]
  }'
POST/api/users/new
curl -X POST "https://your-subdomain.flexie.io/api/users/new" \
  -H "apikey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "jdoe",
    "firstName": "John",
    "lastName": "Doe",
    "email": "jdoe@example.com",
    "password": "S3cretPass!",
    "position": "Sales Manager",
    "timezone": "America/New_York",
    "locale": "en_US",
    "role": 3,
    "isPublished": true
  }'
GET/api/users/self
curl "https://your-subdomain.flexie.io/api/users/self" \
  -H "apikey: YOUR_API_KEY"

Roles

Permission roles that govern who can do what.

3 endpoints
GET/api/roles
curl "https://your-subdomain.flexie.io/api/roles?limit=30&search=acme" \
  -H "apikey: YOUR_API_KEY"
POST/api/roles
curl -X POST "https://your-subdomain.flexie.io/api/roles" \
  -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/roles/{id}
curl "https://your-subdomain.flexie.io/api/roles/42" \
  -H "apikey: YOUR_API_KEY"