{"id":14990048,"url":"https://github.com/siddhi-io/siddhi-io-http","last_synced_at":"2025-08-23T03:13:40.442Z","repository":{"id":43059616,"uuid":"91549865","full_name":"siddhi-io/siddhi-io-http","owner":"siddhi-io","description":"Extension that allows you to receive and publish events via HTTP and https transports","archived":false,"fork":false,"pushed_at":"2025-03-13T14:13:53.000Z","size":5885,"stargazers_count":16,"open_issues_count":6,"forks_count":53,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-03-31T12:06:12.434Z","etag":null,"topics":["curl","extension","http","https","io","request","response","rest","siddhi","soap"],"latest_commit_sha":null,"homepage":"https://siddhi-io.github.io/siddhi-io-http/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siddhi-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-17T08:05:17.000Z","updated_at":"2025-03-29T19:26:31.000Z","dependencies_parsed_at":"2024-01-29T06:11:38.842Z","dependency_job_id":null,"html_url":"https://github.com/siddhi-io/siddhi-io-http","commit_stats":{"total_commits":541,"total_committers":42,"mean_commits":"12.880952380952381","dds":0.6118299445471349,"last_synced_commit":"c9ef60bb28725df9d7c2edd20d6dbe58069934eb"},"previous_names":["wso2-extensions/siddhi-io-http"],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhi-io%2Fsiddhi-io-http","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhi-io%2Fsiddhi-io-http/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhi-io%2Fsiddhi-io-http/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siddhi-io%2Fsiddhi-io-http/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siddhi-io","download_url":"https://codeload.github.com/siddhi-io/siddhi-io-http/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657281,"owners_count":20974345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curl","extension","http","https","io","request","response","rest","siddhi","soap"],"created_at":"2024-09-24T14:19:23.021Z","updated_at":"2025-04-07T13:09:20.803Z","avatar_url":"https://github.com/siddhi-io.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Siddhi IO HTTP\n======================================\n\n  [![Jenkins Build Status](https://wso2.org/jenkins/job/siddhi/job/siddhi-io-http/badge/icon)](https://wso2.org/jenkins/job/siddhi/job/siddhi-io-http/)\n  [![GitHub Release](https://img.shields.io/github/release/siddhi-io/siddhi-io-http.svg)](https://github.com/siddhi-io/siddhi-io-http/releases)\n  [![GitHub Release Date](https://img.shields.io/github/release-date/siddhi-io/siddhi-io-http.svg)](https://github.com/siddhi-io/siddhi-io-http/releases)\n  [![GitHub Open Issues](https://img.shields.io/github/issues-raw/siddhi-io/siddhi-io-http.svg)](https://github.com/siddhi-io/siddhi-io-http/issues)\n  [![GitHub Last Commit](https://img.shields.io/github/last-commit/siddhi-io/siddhi-io-http.svg)](https://github.com/siddhi-io/siddhi-io-http/commits/master)\n  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nThe **siddhi-io-http extension** is an extension to \u003ca target=\"_blank\" href=\"https://wso2.github.io/siddhi\"\u003eSiddhi\u003c/a\u003e that receives and publishes events via HTTP and HTTPS transports, calls external services, and serves incoming requests and provide synchronous responses.\n\nFor information on \u003ca target=\"_blank\" href=\"https://siddhi.io/\"\u003eSiddhi\u003c/a\u003e and it's features refer \u003ca target=\"_blank\" href=\"https://siddhi.io/redirect/docs.html\"\u003eSiddhi Documentation\u003c/a\u003e. \n\n## Download\n\n* Versions 2.x and above with group id `io.siddhi.extension.*` from \u003ca target=\"_blank\" href=\"https://mvnrepository.com/artifact/io.siddhi.extension.io.http/siddhi-io-http/\"\u003ehere\u003c/a\u003e.\n* Versions 1.x and lower with group id `org.wso2.extension.siddhi.*` from \u003ca target=\"_blank\" href=\"https://mvnrepository.com/artifact/org.wso2.extension.siddhi.io.http/siddhi-io-http\"\u003ehere\u003c/a\u003e.\n\n## Latest API Docs \n\nLatest API Docs is \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7\"\u003e2.3.7\u003c/a\u003e.\n\n## Features\n\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-sink\"\u003ehttp\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eHTTP sink publishes messages via HTTP or HTTPS protocols using methods such as POST, GET, PUT, and DELETE on formats \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e. It can also publish to endpoints protected by basic authentication or OAuth 2.0.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-call-sink\"\u003ehttp-call\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eThe http-call sink publishes messages to endpoints via HTTP or HTTPS protocols using methods such as POST, GET, PUT, and DELETE on formats \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e or \u003ccode\u003eJSON\u003c/code\u003e and consume responses through its corresponding http-call-response source. It also supports calling endpoints protected with basic authentication or OAuth 2.0.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003cs\u003e\u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-request-sink\"\u003ehttp-request\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003c/s\u003e\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003e_(Use http-call sink instead)._\u003cbr\u003eThe http-request sink publishes messages to endpoints via HTTP or HTTPS protocols using methods such as POST, GET, PUT, and DELETE on formats \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e or \u003ccode\u003eJSON\u003c/code\u003e and consume responses through its corresponding http-response source. It also supports calling endpoints protected with basic authentication or OAuth 2.0.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003cs\u003e\u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-response-sink\"\u003ehttp-response\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003c/s\u003e\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003e_(Use http-service-response sink instead)._\u003cbr\u003eThe http-response sink send responses of the requests consumed by its corresponding http-request source, by mapping the response messages to formats such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-service-response-sink\"\u003ehttp-service-response\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eThe http-service-response sink send responses of the requests consumed by its corresponding http-service source, by mapping the response messages to formats such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#sse-server-sink\"\u003esse-server\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eHTTP SSE sink sends events to all subscribers.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#websubhub-sink\"\u003ewebsubhub\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#sink\"\u003eSink\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eWebSubHubEventPublisher publishes messages via HTTP/HTTP according to the provided URL when subscribe to the WebSub hub. The table.name, hub.id are mandatory when defining the websubhub source \u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-source\"\u003ehttp\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eHTTP source receives POST requests via HTTP and HTTPS protocols in format such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e. It also supports basic authentication to ensure events are received from authorized users/systems.\u003cbr\u003eThe request headers and properties can be accessed via transport properties in the format \u003ccode\u003etrp:\u0026lt;header\u0026gt;\u003c/code\u003e.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-call-response-source\"\u003ehttp-call-response\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eThe http-call-response source receives the responses for the calls made by its corresponding http-call sink, and maps them from formats such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e.\u003cbr\u003eTo handle messages with different http status codes having different formats, multiple http-call-response sources are allowed to associate with a single http-call sink.\u003cbr\u003eIt allows accessing the attributes of the event that initiated the call, and the response headers and properties via transport properties in the format \u003ccode\u003etrp:\u0026lt;attribute name\u0026gt;\u003c/code\u003e and \u003ccode\u003etrp:\u0026lt;header/property\u0026gt;\u003c/code\u003e respectively.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003cs\u003e\u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-request-source\"\u003ehttp-request\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003c/s\u003e\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003e_(Use http-service source instead)._\u003cbr\u003eThe http-request source receives POST requests via HTTP and HTTPS protocols in format such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e and sends responses via its corresponding http-response sink correlated through a unique \u003ccode\u003esource.id\u003c/code\u003e.\u003cbr\u003eFor request and response correlation, it generates a \u003ccode\u003emessageId\u003c/code\u003e upon each incoming request and expose it via transport properties in the format \u003ccode\u003etrp:messageId\u003c/code\u003e to correlate them with the responses at the http-response sink.\u003cbr\u003eThe request headers and properties can be accessed via transport properties in the format \u003ccode\u003etrp:\u0026lt;header\u0026gt;\u003c/code\u003e.\u003cbr\u003eIt also supports basic authentication to ensure events are received from authorized users/systems.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003cs\u003e\u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-response-source\"\u003ehttp-response\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003c/s\u003e\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003e_(Use http-call-response source instead)._\u003cbr\u003eThe http-response source receives the responses for the calls made by its corresponding http-request sink, and maps them from formats such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e.\u003cbr\u003eTo handle messages with different http status codes having different formats, multiple http-response sources are allowed to associate with a single http-request sink. It allows accessing the attributes of the event that initiated the call, and the response headers and properties via transport properties in the format \u003ccode\u003etrp:\u0026lt;attribute name\u0026gt;\u003c/code\u003e and \u003ccode\u003etrp:\u0026lt;header/property\u0026gt;\u003c/code\u003e respectively.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#http-service-source\"\u003ehttp-service\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eThe http-service source receives POST requests via HTTP and HTTPS protocols in format such as \u003ccode\u003etext\u003c/code\u003e, \u003ccode\u003eXML\u003c/code\u003e and \u003ccode\u003eJSON\u003c/code\u003e and sends responses via its corresponding http-service-response sink correlated through a unique \u003ccode\u003esource.id\u003c/code\u003e.\u003cbr\u003eFor request and response correlation, it generates a \u003ccode\u003emessageId\u003c/code\u003e upon each incoming request and expose it via transport properties in the format \u003ccode\u003etrp:messageId\u003c/code\u003e to correlate them with the responses at the http-service-response sink.\u003cbr\u003eThe request headers and properties can be accessed via transport properties in the format \u003ccode\u003etrp:\u0026lt;header\u0026gt;\u003c/code\u003e.\u003cbr\u003eIt also supports basic authentication to ensure events are received from authorized users/systems.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#sse-source\"\u003esse\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003eHTTP SSE source send a request to a given url and listen to the response stream.\u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n* \u003ca target=\"_blank\" href=\"https://siddhi-io.github.io/siddhi-io-http/api/2.3.7/#websubhub-source\"\u003ewebsubhub\u003c/a\u003e *(\u003ca target=\"_blank\" href=\"http://siddhi.io/en/v5.1/docs/query-guide/#source\"\u003eSource\u003c/a\u003e)*\u003cbr\u003e \u003cdiv style=\"padding-left: 1em;\"\u003e\u003cp\u003e\u003cp style=\"word-wrap: break-word;margin: 0;\"\u003e WebSub Hub source receive subscription requests via Http and according to the request, the subscription details will be saved to the given table and against the callback and topic name. The subscription request  **MUST** have a Content-Type header of **application/x-www-form-urlencoded** and following **MUST** provide as parameter body. \u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; hub.callback \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; - REQUIRED.\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; The subscriber's callback URL where content distribution notifications should be delivered. The callback URL SHOULD be an unguessable URL that is unique per subscription.\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; hub.mode \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; - REQUIRED.\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; The literal string \"subscribe\" or \"unsubscribe\", depending on the goal of the request.\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; hub.topic \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; - REQUIRED.\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; The topic URL that the subscriber wishes to subscribe to or unsubscribe from.\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; hub.lease_seconds\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; - OPTIONAL.\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; Number of seconds for which the subscriber would like to have the subscription active, given as a positive decimal integer. \u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; hub.secret\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; - OPTIONAL.\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; A subscriber-provided cryptographically random unique secret string that will be used to compute an HMAC digest for authorized content distribution. If not supplied, the HMAC digest will not be present for content distribution requests. \u003c/p\u003e\u003c/p\u003e\u003c/div\u003e\n\n## Dependencies \n\nThere are no other dependencies needed for this extension. \n\n## Installation\n\nFor installing this extension on various siddhi execution environments refer Siddhi documentation section on \u003ca target=\"_blank\" href=\"https://siddhi.io/redirect/add-extensions.html\"\u003eadding extensions\u003c/a\u003e.\n\n## Support and Contribution\n\n* We encourage users to ask questions and get support via \u003ca target=\"_blank\" href=\"https://stackoverflow.com/questions/tagged/siddhi\"\u003eStackOverflow\u003c/a\u003e, make sure to add the `siddhi` tag to the issue for better response.\n\n* If you find any issues related to the extension please report them on \u003ca target=\"_blank\" href=\"https://github.com/siddhi-io/siddhi-execution-string/issues\"\u003ethe issue tracker\u003c/a\u003e.\n\n* For production support and other contribution related information refer \u003ca target=\"_blank\" href=\"https://siddhi.io/community/\"\u003eSiddhi Community\u003c/a\u003e documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiddhi-io%2Fsiddhi-io-http","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiddhi-io%2Fsiddhi-io-http","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiddhi-io%2Fsiddhi-io-http/lists"}