Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    Getting StartedAdministrator documentationFunctional characteristics
      Technology descriptionarrow
    • Architecture OverviewComponent Description
        Deployment schemesarrow
      • Basic schemeFail-safe schemeTypical Placement in Infrastructure
    System requirements
      Admin Panelarrow
      • Account areaarrow
        • Accountsarrow
        • Account UsersAccount Virtual SendersAccount Database Indexes
        TariffsExternal data configurationLDAPTasksSchedule JobsGlobal Stop ListsWebversion Store Policies
        Settingsarrow
      • Databases
          Accessarrow
        • AdminsAPI tokens
        Notifiers
          MTAarrow
        • Default rulesRetry rulesLock rulesBounce patternsStrategiesKeysISPsPools
      Nodes
        Sendersarrow
      • EmailSMSEvent generatorIntegration with Altcraft Cloud SMTPIntegration with Sendsay
        Reportsarrow
      • Audit JournalData Usage
        Toolsarrow
      • ARF decoderURL decoderSMID decoderLicense
      Platform installationarrow
    • Automatic installationManual installationRunning the platform in a Docker container
      Platform configurationarrow
    • Configuration fileDomain settingsLDAP access configurationSending Email via SMTP relayPixel and push domain configurationCluster and Replication SetupSystem notifications configurationProcesses UNIX sockets configurationHTTPS ConfigurationMigrating from MongoDB Community Edition to Percona Server for MongoDBAdding sender IP addressesDeduplication request settingsPostgreSQL database for Market dataProxy server settingsKeycloak Integration with AltcraftGetting HTTP service statusesConfiguring MongoDB log rotation
        Configuration of system constants and directoriesarrow
      • Filtering bot actionsDirectory of gender markers
      Custom Channelsarrow
    • Creating a Channel
        Pipelinesarrow
      • MessageScheduleListenerModerateStop
          Pipesarrow
        • HTTP RequestPackUnpackEventerSchedulerSelectorSQLStore SetStore GetLogResultError
      External Objects (Entities)Templating LanguageSending FilesPresets (Field Sets)DebuggingTechnical Limitations
      Platform maintenancearrow
    • Personnel requirementsPlatform maintenance processesPlatform updatingBackup and recoveryTransferring the platform to a new serverCreating, deleting, and populating tables for statistics in ClickHouseUsing the aktool utilityUsers and directories engaged by the platformPlatform service monitoringProcess and mailing monitoring via Prometheus
      Extraarrow
    • System page customizationSend Message IDClickHouse History Migration GuideInstructions for migrating history to ClickHouseUtility for importing push subscriptions to Firebase projectUtility for importing push subscriptions to Firebase projectENS: настройка интеграции
    Processing HTTP/HTTPS traffic
      Administrator APIarrow
      • Accounts admin apiarrow
        • Restricted accessarrow
        • Account Activation and DeactivationAccount Freeze and Unfreeze
        Get accounts listAdd a new accountDelete the account
        Account usersarrow
      • Update an Existing AccountAdd a new userDelete a userGet a list of usersSending a Welcome Email
        Nodesarrow
      • Synchronize node MTA configurationGet nodes listGet node MTA statusActivate node MTADeactivate node MTA
        Senders admin apiarrow
      • Create or update AKMTA senderGet AKMTA sender informationAssign account to senderGet senders listDelete senderRestore sender
          Sender queuearrow
        • Get sender queue informationHold sender queueRelease sender queueClear sender queue
        Virtual sendersarrow
      • Get virtual senders listGet virtual sender informationCreate virtual senderUpdate virtual senderClone virtual senderDelete virtual sender
    Documentation Archive
  • Custom Channels
  • Pipelines
  • Pipes
  • HTTP Request

HTTP Request

HTTP Request is a Pipe for executing HTTP requests to external services. It supports GET, POST, PUT, DELETE methods, various request body formats, and basic authentication.

Request Body Format​

Depending on the value of params.content_type, data is transmitted differently:

content_typeWhere data comes from
formFrom params.form — sent as URL GET parameters
form-dataFrom params.form — sent as multipart/form-data
jsonFrom $in.body (byte array, usually prepared by the Pack pipe)
xmlFrom $in.body (byte array, usually prepared by the Pack pipe)

Parameters​

FieldTypeRequiredDefaultDescription
urlstringNo""Request URL. Supports templating
methodstringNoGETHTTP method: GET, POST, PUT, DELETE
content_typestringNoformBody format: form, form-data, json, xml
timeoutnumberNoPIPE_HTTP_TIMEOUTRequest timeout in seconds
success_codesnumber[]No[200, 201, 202, 203, 204, 205, 206, 207, 208]HTTP codes that route the event to outs.success
headersobjectNo—Request headers. Supports templating
formobjectNo—Form data for content_type: form and form-data. Supports templating
auth_typestringNobasicAuthentication type. The only available value is basic. Activated if auth_username is set. Sets the header Authorization: Basic <username>:<password>
auth_usernamestringNo""Login for basic authentication
auth_passwordstringNo""Password for basic authentication
pool_sizenumberNoPIPE_HTTP_MAX_CONNConnection pool per host within the channel. Increasing pool_size may not improve speed without increasing PIPE_WORKER_SIZE in the configuration file
limitobjectNo—Rate limit for requests (see below)

Rate Limit (limit)​

Allows limiting the number of requests within a given time interval.

FieldTypeRequiredDefaultDescription
period_secnumberYes—Interval in seconds
count_requestsnumberYes—Maximum number of requests per interval. The limit applies within the key scope in the channel
keystringNorandom UUIDLimit key. Supports templating. One key = one shared limit across multiple HTTP Request pipes
tip

By default, the request rate depends on the Pipeline configuration and is approximately 200–300 requests per second.

Possible Errors​

  • Template processing error in pipe fields
  • $in.body not found (Pack pipe is missing before HTTP Request with content_type: json or xml)
  • $in.body is not a byte array
  • Invalid value of params.content_type
  • Invalid value of params.method
  • HTTP request error (network error, timeout, etc.)

Examples​

Form Request​

{
"id": 3,
"type": "http_request",
"params": {
"method": "POST",
"timeout": 10,
"content_type": "form",
"form": {
"login": "$sender.login",
"password": "$sender.password",
"externalUserCode": "$sender.login"
},
"url": "https://example.com/api/v1.0/sessions",
"success_codes": [200, 202]
},
"outs": {
"success": 6,
"error": 7
}
}

JSON Body Request​

Before this pipe in the chain, there must be a Pack pipe that builds the JSON and writes it to $in.body.

{
"id": 2,
"type": "http_request",
"params": {
"method": "POST",
"timeout": 10,
"content_type": "json",
"headers": {
"Authorization": "$in.ow_tp $in.ow_token"
},
"url": "https://example.com/api/v1/api/campaign/start",
"success_codes": [200, 202]
},
"outs": {
"success": 9,
"error": 10
}
}
Last updated on Jul 21, 2026
Previous
Pipes
Next
Pack
  • Request Body Format
  • Parameters
    • Rate Limit (limit)
  • Possible Errors
  • Examples
    • Form Request
    • JSON Body Request
© 2015 - 2026 Altcraft, LLC. All rights reserved.