mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2025-09-02 18:50:24 +00:00
56 lines
2.2 KiB
Text
56 lines
2.2 KiB
Text
---
|
||
title: Advanced Settings for tasks
|
||
description: 'How to use advanced settings for tasks'
|
||
---
|
||
|
||
## Overriding the max_steps paramter in the task
|
||
If you want the task to execute for a specific number of steps, you can use the `x-max-steps-override` header in the request. This will override the default `max_steps` parameter set in the task.
|
||
|
||
```json
|
||
POST https://api.skyvern.com/api/v1/tasks
|
||
|
||
Headers:
|
||
{
|
||
"x-api-key": "YOUR_API_KEY",
|
||
"x-max-steps-override": 10
|
||
}
|
||
|
||
Body:
|
||
.. usual task body ..
|
||
```
|
||
|
||
## Time-based One-time Password (TOTP)
|
||
|
||
Skyvern supports one-time password (see https://www.twilio.com/docs/glossary/totp for more information) by fetching it from your endpoint. You can pass `totp_verification_url` when [creating a task](/running-tasks/api-spec#request-initiate-a-task). Inside this endpoint hosted by you, you have to conform to the following schema:
|
||
|
||
### Set Up Your TOTP Endpoint
|
||
For websites that requires a verification code to complete a task, you have to set up a TOTP endpoint for Skyvern to fetch the verification code.
|
||
|
||
Here's the TOTP endpoint contract you should use:
|
||
|
||
Request (POST):
|
||
| Parameter | Type | Required? | Sample Value | Description |
|
||
| --- | --- | --- | --- | --- |
|
||
| task_id | String | yes | tsk_123 | The task ID that needs the verification to be done |
|
||
|
||
Response:
|
||
| Parameter | Type | Required? | Sample Value | Description |
|
||
| --- | --- | --- | --- | --- |
|
||
| task_id | String | yes | tsk_123 | The task ID that needs the verification to be done |
|
||
| verification_code | String | no | 123456 | The verification code |
|
||
|
||
### Validate The Sender of The Request
|
||
Same as the webhook API, your server needs to make sure it’s Skyvern that’s making the request.
|
||
|
||
- a python example for how to generate and validate the signature:
|
||
|
||
```python
|
||
def validate_skyvern_request_headers(request: Request) -> bool:
|
||
header_skyvern_signature = request.headers["x-skyvern-signature"]
|
||
payload = request.body() # this is a bytes
|
||
hash_obj = hmac.new(SKYVERN_API_KEY.encode("utf-8"), msg=payload, digestmod=hashlib.sha256)
|
||
client_generated_signature = hash_obj.hexdigest()
|
||
return header_skyvern_signature == client_generated_signature
|
||
```
|
||
|
||
SKYVERN_API_KEY: this is the [api key](/running-tasks/introduction) specific to your organization
|