title: Call REST API for Amazon Kinesis with Setting up API Gateway
body: <p>I am trying to send a HTTP Post Request to put a record into Amazon Kinesis Stream. There are several ways (Kinesis Client, KPL, setting up AWS Gateway as Kinesis Proxy).</p>
  
  <p>I saw this document about Kinesis PutRecord API
  <a href="http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html" rel="nofollow">http://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html</a></p>
  
  <pre><code>POST / HTTP/1.1
  Host: kinesis.&lt;region&gt;.&lt;domain&gt;
  Content-Length: &lt;PayloadSizeBytes&gt;
  User-Agent: &lt;UserAgentString&gt;
  Content-Type: application/x-amz-json-1.1
  Authorization: &lt;AuthParams&gt;
  Connection: Keep-Alive 
  X-Amz-Date: &lt;Date&gt;
  X-Amz-Target: Kinesis_20131202.PutRecord
  {
    "StreamName": "exampleStreamName",
    "Data": "XzxkYXRhPl8x",
    "PartitionKey": "partitionKey"
  }
  </code></pre>
  
  <p>Is it possible to send the above HTTP POST Request to PutRecord without having to set up Amazon API Gateway as explained in this link:
  <a href="http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#call-api-with-api-gateway-custom-authorization" rel="nofollow">http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html#call-api-with-api-gateway-custom-authorization</a></p>
  
  <p>KPL and Kinesis Client must somehow internally use HTTP POST to PutRecord, so there must be a way to do so. Unfortunately, I could not find any resources online.</p>