---
title: "Create Graph"
method: POST
path: "/graph"
tags: ["graphs"]
---

# Create Graph

`POST /graph`

## Request

- Base URL: `https://api.overfit.de` (the document declares no server; this is the origin it was published from)
- URL: `https://api.overfit.de/graph`
- Auth: one of:
  - OpenID Connect (`https://auth.okns.de/realms/overfit-products/.well-known/openid-configuration`)
  - API key in header `X-API-Key`

Create a new graph. Accepts GraphCreate Schema as input. A can only be used by using it with an Agent.
Tools used in the Schema must be created before.

## Request body

- GraphCreate
  - `nodes` union[], required
    - union
      - LinkedInPosterNodeCreate
        - `type` 'LinkedInPosterNode'
        - `name` string
        - `author_urn` string, nullable
        - `wait_for_content` boolean, nullable
        - `run_introspect` boolean, nullable
        - `content_landing_page` string, nullable
        - `client` 'consumer' | 'business'
      - UserPushBackMessageNodeCreate
        - `type` 'UserPushBackMessageNode'
        - `message` string, required
      - StaticStringReplaceNodeCreate
        - `type` 'StaticStringReplaceNode'
        - `required_keys` string[]
        - `format_string` string, required
      - FinishNodeCreate
        - `type` 'FinishNode'
        - `return_llm_chat` boolean, nullable
        - `state_return_key` string, nullable
      - InsightNodeCreate
        - `type` 'InsightNode'
        - `insight_id` string, required: The insight to query
        - `search_mode` string
        - `top_k` integer
        - `generative_model` string
        - `temperature` number
        - `system_prompt` string
        - `output_key` string
      - WebRankingNodeCreate
        - `type` 'WebRankingNode'
        - `llm_provider` string, nullable
        - `max_urls_to_rank` integer, nullable
        - `confidence_threshold` number, nullable
      - UserPushBackNodeCreate
        - `type` 'UserPushBackNode'
      - WebDownloadNodeCreate
        - `type` 'WebDownloadNode'
        - `max_pages` integer, nullable
        - `min_pages` integer, nullable
        - `timeout` integer, nullable
        - `max_retries` integer, nullable
        - `download_subpages` boolean, nullable
      - ContactScraperNodeCreate
        - `type` 'ContactScraperNode'
        - `prefer_verified_site` boolean, nullable: Prioritize verified website
        - `min_confidence` number, nullable: Minimum confidence threshold
        - `browse_for_contacts` boolean, nullable: Actively browse for contact pages
      - StaticStringNodeCreate
        - `type` 'StaticStringNode'
        - `output_string` string, required
      - RewriteNoUmlautNodeCreate
        - `type` 'RewriteNoUmlautNode'
        - `exclude_keys` string[], nullable
        - `name` string
      - CheckInputStringConditionNodeCreate
        - `type` 'CheckInputStringConditionNode'
        - `string_check` string, required
      - ConditionNodeCreate
        - `type` 'ConditionNode'
        - `condition_prompt` string, required
        - `string_check` string
      - AssistantPushBackToConsiderdNodeCreate
        - `type` 'AssistantPushBackToConsiderdNode'
      - PopLatestConsideredNodeCreate
        - `type` 'PopLatestConsideredNode'
      - WriteSingleValueOfStateNodeCreate
        - `type` 'WriteSingleValueOfStateNode'
        - `key` string
        - `value` unknown
        - `name` string
      - AssistantPushBackMessageNodeCreate
        - `type` 'AssistantPushBackMessageNode'
        - `message` string, required
      - PopLatestUserChatNodeCreate
        - `type` 'PopLatestUserChatNode'
      - RunChatNodeCreate
        - `type` 'RunChatNode'
        - `model` string
        - `return_json` boolean, nullable
      - StaticListNodeCreate
        - `type` 'StaticListNode'
        - `output_list` string[], required
      - SoupDownloaderNodeCreate
        - `type` 'SoupDownloaderNode'
      - AIResearcherNodeCreate
        - `type` 'AIResearcherNode'
        - `llm_provider` string
        - `model` string, nullable
        - `max_depth` integer
        - `max_pages` integer
        - `min_confidence` number
      - DecisionRequiredNodeCreate
        - `type` 'DecisionRequiredNode'
        - `return_llm_chat` boolean, nullable
        - `possibilities` string[], nullable
        - `consider_in_chat` boolean, nullable
      - PopLatestAllNodeCreate
        - `type` 'PopLatestAllNode'
      - LinkedInImageUploadNodeCreate
        - `type` 'LinkedInImageUploadNode'
        - `name` string
        - `owner_urn` string, required
        - `run_introspect` boolean, nullable
        - `client` 'consumer' | 'business'
      - AndNodeCreate
        - `type` 'AndNode'
        - `required_keys` string[], nullable
        - `return_key` string, nullable
      - SystemPushBackMessageNodeCreate
        - `type` 'SystemPushBackMessageNode'
        - `message` string, required
      - LinkedInContentImageNodeCreate
        - `type` 'LinkedInContentImageNode'
        - `name` string
        - `author_urn` string, required
        - `content_landing_page` string, nullable
      - UserPushBackToConsiderdNodeCreate
        - `type` 'UserPushBackToConsiderdNode'
      - EmailNodeCreate
        - `type` 'EmailNode'
        - `email_format` string, required
        - `subject` string, required
        - `to` string, required
        - `is_markdown` boolean
      - WrittenInputRequiredChatNodeCreate
        - `type` 'WrittenInputRequiredChatNode'
      - DecisionRequiredChatNodeCreate
        - `type` 'DecisionRequiredChatNode'
        - `return_llm_chat` boolean, nullable
      - WebSearchNodeCreate
        - `type` 'WebSearchNode'
        - `max_results` integer, nullable
        - `timeout` integer, nullable
      - TokenCheckNodeCreate
        - `type` 'TokenCheckNode'
      - WrittenInputRequriedNodeCreate
        - `type` 'WrittenInputRequiredNode'
      - CheckStateForKeywordsNodeCreate
        - `type` 'CheckStateForKeywordsNode'
        - `check_keys` string[]
        - `mode` 'all' | 'any'
        - `exclude_values` string[]
        - `name` string
      - SystemPushBackNodeCreate
        - `type` 'SystemPushBackNode'
      - LookupNodeCreate
        - `type` 'LookupNode'
        - `insight_id` string, required: The insight to query
        - `search_mode` string
        - `top_k` integer
        - `output_key` string
      - ConditionRegexNodeCreate
        - `type` 'ConditionRegexNode'
        - `condition_prompt` string, required
        - `regex` string, required
      - AssistantPushBackNodeCreate
        - `type` 'AssistantPushBackNode'
  - `edges` union[], required
    - union
      - StringCuttingByKeywordEdgeCreate
        - `type` 'StringCuttingByKeywordEdge'
        - `source` integer, required
        - `destination` integer, required
        - `keyword` string, required
      - PassInputOuputEdgeCreate
        - `type` 'PassInputOuputEdge'
        - `source` integer, required
        - `destination` integer, required
      - ConditionFalseEdgeCreate
        - `type` 'ConditionFalseEdge'
        - `source` integer, required
        - `destination` integer, required
      - JsonSplittingEdgeCreate
        - `type` 'JsonSplittingEdge'
        - `source` integer, required
        - `destination` integer, required
        - `json_key` string, nullable, required
      - PassInputRenameEdgeCreate
        - `type` 'PassInputRenameEdge'
        - `outcome_keys` string[]
        - `source` integer, required
        - `destination` integer, required
      - PassDictEdgeCreate
        - `type` 'PassDictEdge'
        - `source` integer, required
        - `destination` integer, required
      - NoIOEdgeCreate
        - `type` 'NoIOEdge'
        - `source` integer, required
        - `destination` integer, required
      - RenameInputRenameOutputEdgeCreate
        - `type` 'RenameInputRenameOutputEdge'
        - `outcome_keys` string[]
        - `required_keys` string[]
        - `source` integer, required
        - `destination` integer, required
      - ConditionTrueEdgeCreate
        - `type` 'ConditionTrueEdge'
        - `source` integer, required
        - `destination` integer, required
      - StringCutFirstLineKeywordEdgeCreate
        - `type` 'StringCutFirstLineKeywordEdge'
        - `source` integer, required
        - `destination` integer, required
        - `keyword` string, required
  - `start_node` integer, required
  - `max_run_depth` integer
  - `name` string, nullable
  - `public` boolean, nullable
  - `description` string, nullable

## Response `200`

Successful Response

- Graph
  - `name` string
  - `public` boolean
  - `description` string
  - `edges` object
  - `nodes` object
  - `id` string
  - `max_run_depth` integer
  - `start_node` Node
    - `name` string
    - `type` 'Node'
    - `is_stopping` boolean
    - `required_keys` string[]
    - `outcome_keys` string[]
    - `config_id` string
    - `graph_id` string
    - `input_data` object
    - `output_data` object
    - `incoming_edges` string[]
    - `outgoing_edges` string[]
    - `transition_history` string, nullable
  - `sub` string, uuid
  - `is_aithra` boolean
  - `third_party_token_needed` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/overfit/apis/overfit-insights-revolutionizing-data-retrieval.md) · [All operations](https://skmtc.dev/overfit/apis/overfit-insights-revolutionizing-data-retrieval/llms.txt) · [OpenAPI document](https://skmtc.dev/overfit/apis/overfit-insights-revolutionizing-data-retrieval/revisions/0055f7fe41e5?raw)
