All core actions are open source and available in Tracecat’s GitHub repository.

The docs below only cover the core namespace. For information on core.transform and core.workflow, check out the tutorials on Data Transforms and Child Workflows.

Core actions are the building blocks of Tracecat workflows and action templates. All core actions are under the core namespace. They are distinct from pre-built integrations in the tools namespace, which are pre-configured for specific 3rd-party tools.

There are three sub-namespaces under core:

  • core
  • core.transform
  • core.workflow

core actions are the most commonly used actions in Tracecat. They include:

NameDisplay NameDescription
core.http_requestHTTP RequestMake a HTTP request.
core.http_pollHTTP PollingPoll a REST API until a condition is met.
core.ai_actionAI ActionPrompt a LLM (e.g. OpenAI, self-hosted) to take an action.

HTTP Request

The core.http_request action supports GET, POST, PUT, PATCH, and DELETE requests.

  • To make a GET request with query parameters, specify the params field.
  • To make a POST, PUT, or PATCH request with:
    • JSON encoded body, specify the payload field.
    • Form-encoded data, specify the form_data field.
  • To make a request with a custom HTTP headers, specify the headers field.

Examples

Polling HTTP Request

Tracecat makes it easy to poll APIs with long-running operations using the core.http_poll action. To configure the core.http_poll action, you’ll need to specify one of the following inputs:

  • poll_retry_codes: List of status codes on which the action will retry.
  • poll_condition: A Python lambda function string that determines whether to retry.

If the operation doesn’t poll on a status code, poll_condition is required. It is a Python lambda function string that determines whether to retry based on:

  • headers: The HTTP headers of the response.
  • data: The JSON decoded response body.

For example, to poll on a response body containing "status" until it equals "complete", you can specify the following:

poll_condition: "lambda x: x['data']['status'] == 'complete'"

You can further configure the polling behavior via the optional inputs:

  • poll_interval: Seconds between polling attempts. Defaults to exponential wait.
  • poll_max_attempts: Maximum number of polling attempts. Defaults to 10.

AI Action

Tracecat supports self-hosted LLMs such as llama, mistral, and deepseek. Check out the self-hosted LLM deployment guide to learn how to set it up.

🚧 The AI action is currently under heavy development. Please contact us on Discord for up-to-date information and usage examples.

Was this page helpful?