> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/harness-platform/use-harness-platform/templates/harness-template-library.md).

# Create an HTTP step template

The Harness Template Library enables you to standardize and distribute reusable step templates across teams that use Harness.

To demonstrate how to create, configure, and use HTTP step templates, this topic adds an HTTP template to a [CD pipeline](/continuous-delivery/troubleshooting-and-resources/tutorials/cd-gitops-tutorials.md), but you can add HTTP step templates to other pipelines that support this step type.

This topic assumes you're familiar with [Harness' key concepts](/harness-platform/new-to-harness-platform/overview.md).

#### Objectives <a href="#objectives" id="objectives"></a>

You'll learn how to:

* Create an HTTP step template.
* Define template parameters.
* Use the HTTP step template in a pipeline.

#### Step 1: Create a step template <a href="#step-1-create-a-step-template" id="step-1-create-a-step-template"></a>

You can create a step template from your account, org, or project. ​This topic explains the steps to create a step template from the project scope.

To create a inline step template from the project scope, do the following:

1. In your Harness, go to your project.
2. Select **Project Settings**, then, under **Project-level resources**, select **Templates**.
3. Select **+ New Template**, and then select **Step**. The **Create New Step Template** settings open.

   ![](/files/hDa6uZMMRo6iAnmvQt3B)
4. In **Name**, enter a name for the template, for example `Quickstart`.
5. (Optional) Select the pencil icon to enter a **Description**.
6. (Optional) Select the pencil icon to add **Tags**.
7. In **Version Label**, enter a version for the template.​
8. Under **How do you want to set up your template?**, select **Inline**.
9. Click **Start**. The **Step Library** panel opens.

#### Step 2: Add step parameters <a href="#step-2-add-step-parameters" id="step-2-add-step-parameters"></a>

To add step parameters, do the following:

1. Follow the steps above to create a template.
2. In **Step Library,** select **HTTP** under **Utilities**.

   ![](/files/MNfsEXKBVdqignFkkCfL)

   The **Step Parameters** settings open.

   ![](/files/F4kfSoIjHvq9X8TZhSLV)
3. In **Timeout**, enter a timeout value for this step. You can enter 10s.
4. In **URL**, enter the URL for the HTTP call.
5. In **Method**, select **GET**.
6. Select **Save**. The new template displays under the **Templates** list.

#### Step 3: Add the HTTP step template to a pipeline <a href="#step-3-add-the-http-step-template-to-a-pipeline" id="step-3-add-the-http-step-template-to-a-pipeline"></a>

To add a step template in a pipeline execution, do the following:

1. In Harness, select your pipeline.
2. Select the step, and then select **Add Step**. The **Step Library** panel opens.
3. In **Step Library,** select **HTTP** under **Utilities**. The **HTTP Step** settings open.

   ![](/files/pUiY99TH1v8VJXL4ZgQf)
4. Click **Use Template.** The next page lists all the Project-level templates.
5. Select the template that you created.

   ![](/files/v9RflatzDDbGZPHFjHgF)
6. Select the **Activity Log** to track all template events. It shows you details like who created the template and template version changes.
7. In **Details**, from the **Version Label** list, select **Always use the stable version**.

   Selecting this option ensures that any changes that you make to this version are propagated automatically to the pipelines using this template.
8. Select **Use Template**.

   ![](/files/sb2iRyBqZMMr2vpjKcEE)
9. In **Name**, enter `Quickstart`.
10. Under **Template Inputs**, select **Timeout**, and then select **Runtime input**.
11. Click URL and select **Runtime input**.

    **Use Runtime Inputs instead of variable expressions:** when you want to template settings in a stage or step template, use [Runtime inputs](/harness-platform/use-harness-platform/variables-and-expressions/runtime-inputs.md) instead of variable expressions. When Harness tries to resolve variable expressions to specific stage-level settings using fully-qualified names, it can cause issues at runtime. Every pipeline where the stage or step template is inserted must utilize the exact same names for fully-qualified name references to operate. With runtime inputs, you can supply values for a setting at deployment runtime.
12. Select **Apply Changes**.
13. Select **Save**.
