---
title: "Collect a BLAST search"
method: POST
path: "/blast_poll"
tags: ["Analysis"]
---

# Collect a BLAST search

`POST /blast_poll`

## Request

- Base URL: `https://seqbench.com/api/v1`
- URL: `https://seqbench.com/api/v1/blast_poll`
- Auth: none required

Check a BLAST search submitted with blast_submit. Returns {ready:false} while it is still running; once ready, returns each hit's accession, title, organism, best HSP (bit score, expect, percent identity, span on both query and subject) and the percentage of the QUERY it covers, with overlapping HSPs merged so coverage cannot exceed 100%. A search of several FASTA records also returns `queries`: each record's title, length and hits, in submission order (`hits` is the first record's). A request id NCBI no longer recognises is reported as either a typo or an expired search, which is the same answer it gives for both.

## Request body

- object
  - `rid` string, required: The request id returned by blast_submit.

## Response `200`

Tool ran successfully.

- SuccessResponse: Standard success envelope returned by every single-tool call.
  - `ok` unknown, required
  - `tool` string, required: The tool slug that ran.
  - `result` object, required: Tool-specific output object. Its shape depends on the tool — call `GET /{tool}` or see the docs for each tool's fields.
  - `gate` GateResult
    - `pass` boolean, required: True if and only if every hard check passed.
    - `checks` GateCheck[], required
      - `id` string, required
      - `label` string, required
      - `severity` 'hard' | 'soft', required
      - `pass` boolean, required
      - `message` string, required
      - `value` number
      - `threshold` string
    - `notChecked` string[], required: Honest list of what this gate does NOT verify.
  - `provenance` Provenance, required
    - `apiVersion` string, required
    - `tool` union, required: Tool slug, or an array of slugs (one per step) for a workflow.
      - string
      - string[]
    - `generatedAt` string, date-time, required: ISO 8601 timestamp of when the result was generated.

## Other responses

- `400`: Invalid argument or the tool could not run.
- `404`: Unknown tool.
- `429`: Rate limited (metered tools only). Body carries code `rate_limited` and retryable `true`; honor the Retry-After header.
- `503`: A metered tool is momentarily at capacity. The identical request should succeed after Retry-After; body carries code `upstream_unavailable`.

---

[API](https://skmtc.dev/seqbench/apis/seqbench-api.md) · [All operations](https://skmtc.dev/seqbench/apis/seqbench-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seqbench/apis/seqbench-api/revisions/132575216865?raw)
