{
 "schema_version": "1.0",
 "id": "dify",
 "name": "Dify",
 "research_status": "researched",
 "vendor_domain": "dify.ai",
 "category": "IT & Productivity",
 "task": "AI development, agents & data",
 "summary": "Source-available platform for LLM apps and agent workflows: visual builder, RAG pipelines, model-agnostic. The Community Edition is free of a software fee to self-host, but you own the servers, updates and reliability.",
 "best_for": "technical teams that want to build and ship LLM apps and agents on a source-available platform they can self-host and control",
 "skip_if": "you want a no-maintenance, non-technical builder — a fully managed no-code AI tool saves you the infra and upkeep",
 "honest_knock": "'Free' self-hosting isn't free — you own the servers, updates and reliability, and model usage bills separately once the included message credits run out. Dify Cloud takes that infrastructure work off your hands, but every cloud plan is a single workspace, and multiple workspaces, SSO and a commercial licence sit in quote-only Enterprise. It's powerful, but self-hosting it well needs technical comfort.",
 "pricing": {
  "status": "public",
  "entry_price": "$59",
  "entry_price_terms": "a month ($590/yr) per workspace",
  "from_price_usd_month": 59.0,
  "plans": null,
  "plans_source": null,
  "notes": "Source-available and free of a software fee to self-host — the Community Edition ships under the Dify Open Source License, a modified Apache 2.0 with additional conditions — while the managed Dify Cloud adds a free Sandbox, Professional at $59/mo ($590/yr) and Team at $159/mo ($1,590/yr), each priced per workspace (re-verified 2026-10-09 against dify.ai/pricing.md; the advertised ~17% annual saving checks out: $590 against $708 and $1,590 against $1,908 at the monthly rate). Self-hosting still costs you infrastructure, model usage and any commercial licence those terms require. Cloud plans include message credits for supported model providers; once those run out you connect your own provider API key and pay that provider directly.",
  "verified_at": "2026-10-09",
  "source_url": null,
  "schema_offer": null,
  "source_quotes": null,
  "recent_change": null
 },
 "free_plan": false,
 "free_plan_evidence": null,
 "cost_traps": [
  {
   "id": "usage_metered",
   "label": "Usage-metered",
   "evidence": "Cloud plans include message credits for supported model providers; once those run out you connect your own provider API key and pay that provider directly.",
   "verified_at": "2026-10-09",
   "source_url": null
  }
 ],
 "compare_with": {
  "name": "Flowise or a managed platform like Lindy.ai",
  "why": "other LLM-app builders, self-host or managed"
 },
 "links": {
  "record": "https://aibuildermarketplace.com/api/v1/products/dify.json",
  "review": "https://officesoftwaremarketplace.com/dify-review.html",
  "marketplace": "https://aibuildermarketplace.com/marketplace/dify/",
  "vendor_site": "https://dify.ai"
 },
 "purchase": {
  "seller": "the vendor",
  "how": "AIBuilder Marketplace does not sell this software. Sign up, start a trial or buy on the vendor's site.",
  "handoff_url": "https://dify.ai/",
  "affiliate": false,
  "disclosure": "Where purchase.affiliate is true, purchase.handoff_url is an affiliate link: AIBuilder Marketplace may earn a commission at no extra cost to the buyer. Commission never changes what a record says, and products are not ranked by commission. Where it is false the link is the vendor's plain site."
 },
 "provenance": {
  "research": "hand-researched dossier, read on the vendor's own pages",
  "researched_since": "2026-07",
  "method": "https://aibuildermarketplace.com/how-we-review/",
  "license": "CC BY 4.0. Credit 'AIBuilder Marketplace' with a link to https://aibuildermarketplace.com/atlas/.",
  "note": "A rebuild is not a new measurement: pricing.verified_at is the date that matters."
 },
 "cost": {
  "status": "available",
  "engine": "https://aibuildermarketplace.com/agents/#cost",
  "rules": {
   "currency": "USD",
   "unit": "workspace",
   "axis": "users",
   "plans": [
    {
     "id": "sandbox",
     "name": "Sandbox",
     "model": "free",
     "max_units": 1,
     "evidence": "the managed Dify Cloud adds a free Sandbox"
    },
    {
     "id": "professional",
     "name": "Professional",
     "model": "flat",
     "max_units": 1,
     "monthly": 59,
     "annual_year": 590,
     "evidence": "Professional at $59/mo ($590/yr) and Team at $159/mo ($1,590/yr), each priced per workspace"
    },
    {
     "id": "team",
     "name": "Team",
     "model": "flat",
     "max_units": 1,
     "monthly": 159,
     "annual_year": 1590,
     "evidence": "Professional at $59/mo ($590/yr) and Team at $159/mo ($1,590/yr), each priced per workspace"
    }
   ],
   "notes": [
    "Self-hosting the Community Edition carries no software fee but costs infrastructure, model usage and any commercial licence the Dify Open Source License requires."
   ],
   "not_computable": [
    "Cloud plans include message credits; after those run out you pay your own model provider directly, which is not in these figures."
   ],
   "rules_verified_at": "2026-10-29"
  },
  "growth": {
   "annual": {
    "product_id": "dify",
    "currency": "USD",
    "axis": "users",
    "unit": "workspace",
    "billing": "annual",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": "sandbox",
      "cheapest_plan_name": "Sandbox",
      "total_month": 0.0,
      "billed": {
       "amount": 0.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "sandbox": 0.0,
       "professional": 49.17,
       "team": 132.5
      }
     },
     {
      "units": 2,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 3,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 5,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 10,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 15,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 20,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 25,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 50,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 100,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     }
    ],
    "switch_points": [
     {
      "from_units": 1,
      "to_units": 2,
      "from_plan": "sandbox",
      "to_plan": null,
      "from_plan_name": "Sandbox",
      "to_plan_name": null
     }
    ],
    "conflicts": [],
    "unknowns": [
     "Cloud plans include message credits; after those run out you pay your own model provider directly, which is not in these figures."
    ]
   },
   "monthly": {
    "product_id": "dify",
    "currency": "USD",
    "axis": "users",
    "unit": "workspace",
    "billing": "monthly",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": "sandbox",
      "cheapest_plan_name": "Sandbox",
      "total_month": 0.0,
      "billed": {
       "amount": 0.0,
       "every": "month"
      },
      "ranges": [],
      "per_plan": {
       "sandbox": 0.0,
       "professional": 59.0,
       "team": 159.0
      }
     },
     {
      "units": 2,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 3,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 5,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 10,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 15,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 20,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 25,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 50,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     },
     {
      "units": 100,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "sandbox": "not_eligible",
       "professional": "not_eligible",
       "team": "not_eligible"
      }
     }
    ],
    "switch_points": [
     {
      "from_units": 1,
      "to_units": 2,
      "from_plan": "sandbox",
      "to_plan": null,
      "from_plan_name": "Sandbox",
      "to_plan_name": null
     }
    ],
    "conflicts": [],
    "unknowns": [
     "Cloud plans include message credits; after those run out you pay your own model provider directly, which is not in these figures."
    ]
   }
  }
 },
 "unknowns": [
  "Plan-by-plan prices are not structured in this record yet; pricing.notes has the full text.",
  "Contract terms (cancellation, data export, data location, minimum seats) are not researched as separate fields; pricing.notes mentions them only where the vendor's pricing page does.",
  "Being verified: free trial and refund terms are not yet matched to a verbatim line on the vendor's own pages. Not matched does not mean there is none.",
  "Not tested hands-on by us: what the product does comes from the vendor's pages and our reading of them."
 ],
 "verification": {
  "price": "read",
  "free_trial": "being_verified",
  "refund": "being_verified"
 },
 "status_page": null,
 "third_party_video": {
  "url": "https://www.youtube.com/watch?v=CpZdaE5QmI8",
  "channel": "Mindly Nova",
  "published": "2025-04-07",
  "shows": "An independent tutorial that builds an app in Dify's visual workflow editor, connecting blocks and installing plugins",
  "independent": true,
  "checked_at": "2026-10-22"
 },
 "task_evidence": null,
 "open_questions": [
  {
   "question_id": "dify:cancellation_terms",
   "key": "cancellation_terms",
   "question": "Can a customer cancel at any time, and what happens to an annual plan that is cancelled mid-term?",
   "status": "open"
  },
  {
   "question_id": "dify:data_export",
   "key": "data_export",
   "question": "Which data can a customer export, in which formats, on which plans?",
   "status": "open"
  },
  {
   "question_id": "dify:data_location",
   "key": "data_location",
   "question": "Where is customer data stored, and can a customer choose the region?",
   "status": "open"
  },
  {
   "question_id": "dify:pricing_gap_1",
   "key": "pricing_gap_1",
   "question": "Our price check could not put a number on this part of the cost: Cloud plans include message credits; after those run out you pay your own model provider directly, which is not in these figures. Can you publish the price or the rule?",
   "status": "open"
  }
 ],
 "vendor_answers": [],
 "agent_channels": {
  "vendor_mcp": {
   "what": "Publish any Dify app as an MCP server — and consume other MCP servers as tools inside your workflows. It works both ways.",
   "plan": "Not stated in their own documentation.",
   "status": "Live",
   "source": "https://docs.dify.ai/en/cloud/use-dify/publish/publish-mcp",
   "checked": "2026-07-28",
   "note": "The vendor's own MCP server, from our MCP research; it works with your own account at the vendor."
  },
  "agent_checkout": {
   "status": "not_found",
   "detail": "No explicit support for purchases by AI agents on the vendor's own pages.",
   "checked_at": "2026-10-07",
   "method": "homepage, /pricing and the pricing page we cite, read as plain HTML (no JavaScript) and searched for explicit support of purchases by AI agents: Agentic Commerce Protocol, Instant Checkout, Agent Payments Protocol, buy in ChatGPT, agentic checkout"
  }
 }
}
