> ## Documentation Index
> Fetch the complete documentation index at: https://promptlayer-1023-gorgias-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Track Request

Track request allows you to send your LLM request to our platform. On success, this request will return a `request_id` which is necessary for `track-score`

## Example Code

<CodeGroup>
  ```python Chat
  import requests

  # URL and headers
  url = "http://api.promptlayer.com/track-request"
  headers = {
      "Content-Type": "application/json",
  }

  # Data payload
  data_payload = {
      "function_name": "openai.ChatCompletion.create",
      "kwargs": {
          "messages": [
              {
                "content": "You are a helpful AI assistant.",
                "role": "system"
              },
              {
                "content": "What's the weather like in Boston?",
                "role": "user"
              }
          ],
          "model": "gpt-3.5-turbo-16k",
          "function_call": "auto",
          "functions": [
            {
              "description": "Get the current weather in a given location",
              "name": "get_current_weather",
              "parameters": {
                "properties": {
                  "location": {
                    "description": "The city and state, e.g. San Francisco, CA",
                    "type": "string"
                  },
                  "unit": {
                    "enum": [
                      "celsius",
                      "fahrenheit"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "location"
                ],
                "type": "object"
              }
            }
          ]
      },
      "request_response": {
          "choices": [
              {
                  "index": 0,
                  "message": {
                        "content": "",
                        "function_call": {
                          "arguments": "{\n\"location\": \"Boston, MA\"\n}",
                          "name": "get_current_weather"
                        },
                        "role": "assistant"
                      },
                  "finish_reason": "function_call"
              }
          ],
          "usage": {
              "prompt_tokens": 778,
              "completion_tokens": 28,
              "total_tokens": 806
          }
      },
      "tags": [
          "docs"
      ],
      "request_start_time": 1693505089.21,
      "request_end_time": 1693505093.572,
      "api_key": "pl_<YOUR_API_KEY>"
  }

  # Making the request
  response = requests.post(url, headers=headers, json=data_payload)
  print(response.json())
  ```

  ```python Completion
  import requests

  # URL and headers
  url = "http://api.promptlayer.com/track-request"
  headers = {
      "Content-Type": "application/json",
  }

  # Data payload
  data_payload = {
      "function_name": "openai.Completion.create",
      "kwargs": {"engine": "text-ada-001", "prompt": "My name is"},
      "tags": ["hello", "world"],
      "request_response": {
          "id": "cmpl-6TEeJCRVlqQSQqhD8CYKd1HdCcFxM", 
          "object": "text_completion", 
          "created": 1672425843, 
          "model": "text-ada-001", 
          "choices": [
              {
                  "text": " PromptLayer\"\n\nI'm a great prompt engineering tool.", 
                  "index": 0, 
                  "logprobs": None, 
                  "finish_reason": "stop"
              }
          ]
      },
      "request_start_time": 1673987077.463504,
      "request_end_time": 1673987077.463504,
      "api_key": "pl_<YOUR_API_KEY>",
  }

  # Making the request
  response = requests.post("https://api.promptlayer.com/rest/track-request", json=data_payload)
  print(response.json())
  ```
</CodeGroup>

## Request Parameters

<ParamField body="function_name" type="string">
  The name of the function. For example, if you are using OpenAI it should be either `openai.Completion.create` or `openai.ChatCompletion.create`. These are specific function signatures that PromptLayer uses to parse the `request_response`. Some integration libraries use special `function_name`'s such as `langchain.PromptLayerChatOpenAI`.
</ParamField>

<ParamField body="kwargs" type="object">
  Keyword arguments that are passed into the LLM (such as OpenAI's API). Normally it should include `engine` and `prompt` at the very least. If you are using a chat completion or GPT-4, it should include `messages` instead of `prompt`.
</ParamField>

<ParamField body="request_response" type="object">
  The LLM response. This response must be formatted exactly in OpenAI's response format.
</ParamField>

<ParamField body="request_start_time" type="integer">
  The time at which the LLM request was initiated.
</ParamField>

<ParamField body="request_end_time" type="integer">
  The time at which the LLM request was completed.
</ParamField>

<ParamField body="tags" type="array" optional="true">
  An array of string tags to tag this request on the PromptLayer dashboard.
</ParamField>

<ParamField body="prompt_id" type="string" optional="true">
  The ID of the prompt in the PromptLayer Registry that you used for this request (see `/prompt-templates/{prompt_name}` on how to get this id or you can get it from the URL in the dashboard).
</ParamField>

<ParamField body="prompt_input_variables" type="object" optional="true">
  The input variables you used for a template. This is used for syntax highlighting and, more importantly used, for backtesting when you want to iterate a prompt.
</ParamField>

<ParamField body="prompt_version" type="integer" optional="true">
  It is the version of the prompt that you are trying to track. This should be an integer of a prompt that you are tracking.
</ParamField>

<ParamField body="api_key" type="string">
  The API key for authentication.
</ParamField>
