> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pomerado.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Answer a job's questions

> Answer what a running job asks, keep secrets out of chat and correct a rejected saved login.

A job can stop to ask something only you can answer: a choice the website offers, a code it just sent you, or a login. Answer it, and the job continues.

## See the question

The job reads `status` `needs_input`, and `input_request` holds the question. On Instacart, a run might ask for a delivery window:

```json theme={null}
{
  "id": "req_22222222222242228222222222222222",
  "expires_at": "2026-10-05T17:10:00.000Z",
  "answer_url": "https://app.pomerado.ai/input/jobs/0f8e2d1c-4b3a-49e8-a7f6-e5d4c3b2a190",
  "message": "Choose a delivery window to continue.",
  "questions": [
    {
      "id": "window",
      "prompt": "Which delivery window?",
      "type": "choice",
      "options": [
        { "id": "o1", "label": "2 PM to 4 PM" },
        { "id": "o2", "label": "4 PM to 6 PM" }
      ],
      "allow_other": false,
      "allow_note": false
    }
  ]
}
```

Question types are `choice`, `multi_choice`, `text`, `confirm`, `secret` and `login`.

## Answer it

Answer every question at once with `POST /v1/jobs/{id}/answers` or `answer_job`:

```json theme={null}
{
  "input_request_id": "req_22222222222242228222222222222222",
  "answers": { "window": "o2" }
}
```

The job continues from the same page. Keep [waiting for it](/guides/jobs/wait-for-a-result).

## Keep secrets out of chat

Never ask for a password in chat. A secret or login sent through the API or MCP reaches your client and its model provider. Give the person `answer_url` instead: it opens a protected Pomerado page that keeps the value out of the conversation. Never send authenticator seeds or durable tokens.

## Answer in time

A question waits at most 10 minutes. Unanswered, the job fails with `no_response` and is never retried.

## Correct a rejected saved login

When the website rejects a saved login before anything changed, the job waits instead of failing. It reads `needs_input` with `input_request` `null` and `error.code` `credentials_rejected`, whose `details.login_id` names the login.

Give the user the page to correct it: MCP's `next` names it as `answer_url`. Anyone who can edit that login can correct it. The job then resumes as the same job, so don't submit it again. Uncorrected after 60 minutes, it fails with `credentials_rejected`.

<Accordion title="Details">
  * Answer formats: an option ID for `choice`, an array of option IDs for `multi_choice`, a string for `text` and `secret`, `{"confirmed": true}` for `confirm`, and `{"username", "password", "save_login"}` for `login`, with only the fields the question's `fields` lists. A `choice` also takes `{"other": text}` when `allow_other` and `{"option": id, "note": text}` when `allow_note`.
  * An answer that doesn't fit is refused with `invalid_answer`, and the question stays open. A question that already closed answers `input_not_pending`; read the job again.
  * Sending the same answers again counts as one answer.
  * A login given in the call itself, or a rejected one-time code, fails the job instead of waiting. See [saved logins](/guides/logins/overview).
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.