Harness · Schema
template
DevOpsGitOpsInternal Developer PortalLifecycleSoftware DeliveryCI/CDContinuous DeliveryContinuous Integration
Properties
| Name | Type | Description |
|---|---|---|
| version | number | |
| template | object |
JSON Schema
{
"type" : "object",
"title" : "template",
"additionalProperties" : false,
"required" : [ "template" ],
"properties" : {
"version" : {
"type" : "number",
"enum" : [ 1 ]
},
"template" : {
"type" : "object",
"additionalProperties" : true,
"properties" : {
"id" : {
"type" : "string",
"description" : "Unique identifier of the template.",
"pattern" : "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
},
"name" : {
"type" : "string",
"description" : "Display name of the template.",
"pattern" : "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
},
"description" : {
"type" : "string",
"description" : "Description of the template."
},
"tags" : {
"type" : "object",
"description" : "Tags for the template.",
"additionalProperties" : {
"type" : "string"
}
},
"inputs" : {
"$ref" : "#/definitions/pipeline/common/NGVariableV1Wrapper"
}
},
"oneOf" : [ {
"required" : [ "pipeline" ],
"properties" : {
"pipeline" : {
"$ref" : "#/definitions/pipeline/pipeline"
}
}
}, {
"required" : [ "stage" ],
"properties" : {
"stage" : {
"$ref" : "#/definitions/pipeline/stages/unified/UnifiedStageNodeV1"
}
}
}, {
"required" : [ "step" ],
"properties" : {
"step" : {
"$ref" : "#/definitions/pipeline/steps/unified/StepItems"
}
}
}, {
"required" : [ "group" ],
"properties" : {
"group" : {
"$ref" : "#/definitions/template/group/GroupTemplateSpec"
}
}
}, {
"required" : [ "agent" ],
"properties" : {
"agent" : {
"description" : "Deprecated: define a step template with `template.step.agent.uses`/`with` instead of a top-level `template.agent` entity.",
"$ref" : "#/definitions/template/agent/AgentTemplateSpec"
}
}
} ]
}
},
"$schema" : "http://json-schema.org/draft-07/schema#",
"definitions" : {
"pipeline" : {
"common" : {
"NGVariableV1Wrapper" : {
"title" : "NGVariableV1Wrapper",
"description" : "Wrapper for stage/pipeline-level input variables. Keys are variable names, values define variable configuration.",
"type" : "object",
"additionalProperties" : {
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/StringNGVariableV1"
}, {
"$ref" : "#/definitions/pipeline/common/NumberVariable"
}, {
"$ref" : "#/definitions/pipeline/common/BooleanVariable"
}, {
"$ref" : "#/definitions/pipeline/common/ArrayVariable"
}, {
"$ref" : "#/definitions/pipeline/common/ObjectVariable"
}, {
"$ref" : "#/definitions/pipeline/common/SecretVariable"
}, {
"$ref" : "#/definitions/pipeline/common/StepVariable"
}, {
"$ref" : "#/definitions/pipeline/common/StageVariable"
}, {
"$ref" : "#/definitions/pipeline/common/ConnectorVariable"
} ]
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"StringNGVariableV1" : {
"title" : "StringNGVariableV1",
"description" : "String variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "string" ]
},
"value" : {
"description" : "Variable value. Supports expressions.",
"type" : "string"
},
"default" : {
"description" : "Default value for the variable.",
"type" : "string"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "string"
}
},
"options" : {
"description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
"type" : "array",
"items" : {
"type" : "string"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"Variable" : {
"title" : "Variable",
"type" : "object",
"discriminator" : "type",
"description" : "Variable defines a variable object",
"properties" : {
"type" : {
"description" : "Type defines the variable type.",
"type" : "string",
"enum" : [ "string", "number", "boolean", "array", "object", "secret", "step", "stage", "connector" ]
},
"description" : {
"type" : "string",
"description" : "Description of the variable."
},
"required" : {
"type" : "boolean",
"description" : "Required indicates the variable is required."
},
"execution_input" : {
"description" : "A boolean that defines whether the value is an execution input.",
"type" : "boolean",
"default" : false
},
"items" : {
"description" : "Defines the item type for array variables.",
"type" : "array"
},
"options" : {
"description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
"type" : "array"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array"
},
"pattern" : {
"description" : "Regex pattern for variable value validation.",
"type" : "string"
},
"mask" : {
"description" : "Indicates the input should be masked.",
"type" : "boolean",
"deprecated" : true
},
"ui" : {
"description" : "UI configuration for variable rendering in forms.",
"type" : "object",
"additionalProperties" : true
}
}
},
"NumberVariable" : {
"title" : "NumberVariable",
"description" : "Number variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "number" ]
},
"value" : {
"description" : "Variable value. Supports expressions.",
"oneOf" : [ {
"type" : "number",
"format" : "double"
}, {
"type" : "string",
"pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
} ],
"metadata" : {
"inputProperties" : {
"dependsOn" : [ "type" ]
}
}
},
"default" : {
"description" : "Default value for the variable.",
"type" : "number",
"format" : "double"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"oneOf" : [ {
"type" : "number",
"format" : "double"
}, {
"type" : "string",
"pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
} ]
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"BooleanVariable" : {
"title" : "BooleanVariable",
"description" : "Boolean variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "boolean" ]
},
"value" : {
"description" : "Variable value.",
"type" : "boolean"
},
"default" : {
"description" : "Default value for the variable.",
"type" : "boolean"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "boolean"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"ArrayVariable" : {
"title" : "ArrayVariable",
"description" : "Array variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "array" ]
},
"value" : {
"description" : "Variable value.",
"type" : "array"
},
"default" : {
"description" : "Default value for the variable.",
"type" : "array"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "array"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"ObjectVariable" : {
"title" : "ObjectVariable",
"description" : "Object variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "object" ]
},
"value" : {
"description" : "Variable value.",
"type" : "object"
},
"default" : {
"description" : "Default value for the variable.",
"type" : "object"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "object"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"SecretVariable" : {
"title" : "SecretVariable",
"description" : "Secret variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "secret" ]
},
"value" : {
"description" : "Variable value (secret reference).",
"type" : "string",
"metadata" : {
"inputProperties" : {
"dependsOn" : [ "type" ]
}
}
},
"default" : {
"description" : "Default value for the variable.",
"type" : "string"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "string"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"StepVariable" : {
"title" : "StepVariable",
"description" : "Step variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "step" ]
},
"value" : {
"description" : "Variable value. Supports expressions.",
"type" : "object",
"metadata" : {
"inputProperties" : {
"dependsOn" : [ "type" ]
}
}
},
"default" : {
"description" : "Default value for the variable.",
"type" : "object"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "object"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"StageVariable" : {
"title" : "StageVariable",
"description" : "Stage variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "stage" ]
},
"value" : {
"description" : "Variable value. Supports expressions.",
"type" : "object",
"metadata" : {
"inputProperties" : {
"dependsOn" : [ "type" ]
}
}
},
"default" : {
"description" : "Default value for the variable.",
"type" : "object"
},
"enum" : {
"description" : "Defines a list of accepted input values.",
"type" : "array",
"items" : {
"type" : "object"
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"ConnectorVariable" : {
"title" : "ConnectorVariable",
"description" : "Connector variable definition.",
"allOf" : [ {
"$ref" : "#/definitions/pipeline/common/Variable"
}, {
"type" : "object",
"required" : [ "type" ],
"properties" : {
"type" : {
"description" : "Variable type.",
"type" : "string",
"enum" : [ "connector" ]
},
"value" : {
"description" : "Connector reference value. Supports expressions.",
"type" : "string"
},
"default" : {
"description" : "Default connector reference.",
"type" : "string"
},
"oneof" : {
"description" : "List of allowed connector types.",
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "gitlab", "github", "bitbucket", "gcp", "aws", "docker", "kubernetes", "artifactory", "azure", "jenkins", "jira", "servicenow" ]
}
}
}
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"Expression" : {
"title" : "Expression",
"description" : "String value matching a Harness pipeline expression or template placeholder (e.g., <+something> or ${{ ... }}).",
"type" : "string",
"pattern" : "(\\$\\{\\{.+\\}\\}|<\\+.+>.*)",
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"Delegate" : {
"title" : "Delegate",
"description" : "Delegate defines the delegate matching logic. Supports expressions.",
"oneOf" : [ {
"type" : "array",
"items" : {
"type" : "string"
}
}, {
"type" : "string"
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"TemplateRef" : {
"title" : "TemplateRef",
"description" : "Template identifier and input configuration.",
"type" : "object",
"additionalProperties" : false,
"required" : [ "uses" ],
"properties" : {
"uses" : {
"description" : "Template identifier reference.",
"type" : "string"
},
"with" : {
"description" : "Template input overrides.",
"$ref" : "#/definitions/pipeline/common/WithInputs"
},
"gitBranch" : {
"description" : "Git branch for remote template resolution.",
"type" : "string"
},
"container" : {
"description" : "Caller-side container overrides merged into the resolved template step. Applied for any V1 step template whose spec contains run, run-test, or background (including git-clone and build-and-push templates that wrap those steps).\n",
"$ref" : "#/definitions/pipeline/common/TemplateContainerOverlay"
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"WithInputs" : {
"title" : "WithInputs",
"description" : "Input overrides for service, environment, or infrastructure.",
"type" : "object",
"properties" : {
"overlay" : {
"description" : "Overlay configuration for merging inputs.",
"type" : "object",
"additionalProperties" : true
}
},
"additionalProperties" : true,
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"TemplateContainerOverlay" : {
"title" : "TemplateContainerOverlay",
"description" : "Caller-side container overrides on a V1 template step (`template.container`). Mirrors TemplateMergeServiceHelper.CONTAINER_PROPAGATION_ALLOWLIST. Applied to resolved run, run-test, and background containers (including nested group/parallel). Image, connector, and entrypoint stay on the template and are not overridable here.\n",
"type" : "object",
"additionalProperties" : false,
"properties" : {
"user" : {
"description" : "User ID to run as. Supports expressions.",
"oneOf" : [ {
"type" : "integer"
}, {
"type" : "string"
} ]
},
"group" : {
"description" : "Group to run as.",
"type" : "string"
},
"cpu" : {
"description" : "CPU limit. Ignored when resources.limits.cpu is set.",
"type" : "string"
},
"memory" : {
"description" : "Memory limit. Ignored when resources.limits.memory is set.",
"type" : "string"
},
"resources" : {
"description" : "Container resource limits and requests. Takes precedence over the flat cpu/memory fields.",
"$ref" : "#/definitions/pipeline/Resource"
},
"shm-size" : {
"description" : "Shared memory size.",
"type" : "string"
},
"privileged" : {
"description" : "Run in privileged mode. Supports expressions.",
"oneOf" : [ {
"type" : "boolean"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"StrategyConfigV1" : {
"title" : "StrategyConfigV1",
"type" : "object",
"additionalProperties" : false,
"description" : "Strategy defines execution strategy configuration (matrix, for, while, repeat).",
"properties" : {
"max-parallel" : {
"description" : "Maximum number of parallel executions. Supports expressions.",
"oneOf" : [ {
"type" : "integer"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"fail-fast" : {
"description" : "Whether to fail fast on first failure. Supports expressions.",
"oneOf" : [ {
"type" : "boolean"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"if" : {
"description" : "Conditional expression to determine whether the strategy should execute. Supports expressions.",
"type" : "string"
},
"matrix" : {
"description" : "Matrix strategy for parallel execution across dimensions. Supports expressions.",
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/MatrixConfigV1"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"for" : {
"description" : "For-loop strategy configuration. Supports expressions.",
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/ForConfigV1"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"while" : {
"description" : "While-loop strategy configuration. Supports expressions.",
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/WhileConfigV1"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"repeat" : {
"description" : "Repeat strategy configuration for iterating over items. Supports expressions.",
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/RepeatConfigV1"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
}
},
"oneOf" : [ {
"required" : [ "matrix" ]
}, {
"required" : [ "for" ]
}, {
"required" : [ "while" ]
}, {
"required" : [ "repeat" ]
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"MatrixConfigV1" : {
"title" : "MatrixConfigV1",
"type" : "object",
"description" : "Matrix strategy configuration for parallel execution across multiple dimensions.",
"properties" : {
"exclude" : {
"description" : "Combinations to exclude from the matrix. Supports expressions.",
"oneOf" : [ {
"type" : "array",
"items" : {
"type" : "object",
"additionalProperties" : true
}
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"include" : {
"description" : "Additional combinations to include in the matrix. Supports expressions.",
"oneOf" : [ {
"type" : "array",
"items" : {
"type" : "object",
"additionalProperties" : true
}
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"node-name" : {
"description" : "Custom naming pattern for matrix nodes. Supports expressions.",
"type" : "string"
}
},
"additionalProperties" : {
"description" : "Matrix axes - key is axis name, value is array of values or expression.",
"oneOf" : [ {
"type" : "array"
}, {
"type" : "string"
} ]
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"ForConfigV1" : {
"title" : "ForConfigV1",
"type" : "object",
"additionalProperties" : false,
"description" : "For loop strategy configuration.",
"properties" : {
"iterations" : {
"description" : "Number of iterations to execute. Supports expressions.",
"oneOf" : [ {
"type" : "integer",
"minimum" : 0
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"node-name" : {
"description" : "Custom naming pattern for loop nodes. Supports expressions.",
"type" : "string"
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"WhileConfigV1" : {
"title" : "WhileConfigV1",
"type" : "object",
"additionalProperties" : false,
"description" : "While loop strategy configuration.",
"properties" : {
"iterations" : {
"description" : "Maximum number of iterations. Supports expressions.",
"oneOf" : [ {
"type" : "integer",
"minimum" : 0
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"condition" : {
"description" : "Condition expression to evaluate for continuing the loop. Supports expressions.",
"type" : "string"
},
"node-name" : {
"description" : "Custom naming pattern for loop nodes. Supports expressions.",
"type" : "string"
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"RepeatConfigV1" : {
"title" : "RepeatConfigV1",
"type" : "object",
"additionalProperties" : false,
"description" : "Repeat strategy configuration for iterating over items.",
"properties" : {
"iterations" : {
"description" : "Number of iterations (alternative to items). Supports expressions.",
"oneOf" : [ {
"type" : "integer"
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"items" : {
"description" : "List of items to iterate over. Supports expressions.",
"oneOf" : [ {
"type" : "array",
"items" : {
"type" : "string"
}
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"node-name" : {
"description" : "Custom naming pattern for repeat nodes. Supports expressions.",
"type" : "string"
},
"partition-size" : {
"description" : "Size of each partition when splitting items. Supports expressions.",
"oneOf" : [ {
"type" : "integer",
"minimum" : 0
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"start" : {
"description" : "Starting index for iteration. Supports expressions.",
"oneOf" : [ {
"type" : "integer",
"minimum" : 0
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"end" : {
"description" : "Ending index for iteration. Supports expressions.",
"oneOf" : [ {
"type" : "integer",
"minimum" : 0
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ]
},
"unit" : {
"description" : "Unit for partition-size (percentage or count).",
"type" : "string",
"enum" : [ "percentage", "count" ]
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"OnFailure" : {
"title" : "OnFailure",
"description" : "Failure strategy configuration. Supports single value or array. Supports expressions.",
"oneOf" : [ {
"$ref" : "#/definitions/pipeline/common/FailureConfigV1"
}, {
"type" : "array",
"items" : {
"$ref" : "#/definitions/pipeline/common/FailureConfigV1"
}
}, {
"$ref" : "#/definitions/pipeline/common/Expression"
} ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"FailureConfigV1" : {
"title" : "FailureConfigV1",
"type" : "object",
"additionalProperties" : false,
"description" : "Failure strategy configuration for handling errors.",
"required" : [ "errors", "action" ],
"properties" : {
"errors" : {
"description" : "List of error types to handle. Supports single value or array. Supports expressions.",
"oneOf" : [ {
"type" : "array",
"items" : {
"$ref" : "#/definitions/pipeline/common/NGFailureTypeV1"
}
}, {
"$ref" : "#/definitions/pipeline/common/NGFailureTypeV1"
} ]
},
"action" : {
"$ref" : "#/definitions/pipeline/common/FailureStrategyActionConfigV1"
}
},
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"NGFailureTypeV1" : {
"title" : "NGFailureTypeV1",
"description" : "Failure error types for failure strategy configuration.",
"type" : "string",
"enum" : [ "unknown", "all", "authentication", "connectivity", "timeout", "authorization", "verification", "delegate-provisioning", "policy-evaluation", "input-timeout", "approval-rejection", "delegate-restart", "user-mark-fail", "proceed-with-default" ],
"$schema" : "http://json-schema.org/draft-07/schema#"
},
"FailureStrategyActionConfigV1" : {
"title" : "FailureStrategyActionConfigV1",
"description" : "Action configuration for failure strategy. Can be a string shorthand or a detailed object.",
"oneOf" : [ {
"type" : "string",
"enum" : [ "abort", "ignore", "success", "stage-rollback", "pipeline-rollback", "fail", "proceed-with-default" ]
}, {
"type" : "object",
"additionalProperties" : false,
"properties" : {
"retry" : {
"$ref" : "#/definitions/pipeline/common/Retr
# --- truncated at 32 KB (186 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/json-schema/harness-v1-template-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/harness-v1-template"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.