> For the complete documentation index see https://domscan.net/llms.txt. Markdown versions of every docs page are available by appending .md to the page URL.

Source: https://domscan.net/pl/docs/products/name-availability

# API API dostępności nazw

Sprawdź nazwę jednocześnie w domenach, nazwach użytkowników i rejestrach pakietów. Użyj tej referencji, aby wybrać operację i zintegrować jej udokumentowany kontrakt odpowiedzi.

[Zobacz stronę produktu](https://domscan.net/pl/name-availability-api)

## Operacje

GET `/v1/name-check` [Otwórz referencję API](https://domscan.net/pl/docs/products/name-availability#checkNameAvailability)

## GET `/v1/name-check`

Operacja: `checkNameAvailability`
Kredyty i uwierzytelnianie: 5
Wymagane uwierzytelnianie

GET /v1/name-check Kredyty: 5

#### Parametry zapytania

| Parametr | Typ | wymagane |
| --- | --- | --- |
| name | string | wymagane |
| tlds | string | opcjonalne |
| platforms | string | opcjonalne |
| packages | string | opcjonalne |

#### Pola odpowiedzi

| Pole | Typ |
| --- | --- |
| `name` | string |
| `status` | string |
| `checked_at` | string |
| `verdict` | string |
| `score` | integer \| null |
| `determinacy` | integer |
| `summary` | object |
| `summary.com_available` | boolean \| null |
| `summary.domains` | object |
| `summary.domains.checked` | integer |
| `summary.domains.free` | integer |
| `summary.domains.taken` | integer |
| `summary.domains.unknown` | integer |
| `summary.handles` | object |
| `summary.handles.checked` | integer |
| `summary.handles.free` | integer |
| `summary.handles.taken` | integer |
| `summary.handles.unknown` | integer |
| `summary.packages` | object |
| `summary.packages.checked` | integer |
| `summary.packages.free` | integer |
| `summary.packages.taken` | integer |
| `summary.packages.unknown` | integer |
| `domains[]` | object[] |
| `domains[]` | object |
| `domains[].domain` | string |
| `domains[].tld` | string |
| `domains[].status` | string |
| `domains[].reason` | string \| null |
| `handles[]` | object[] |
| `handles[]` | object |
| `handles[].platform` | string |
| `handles[].status` | string |
| `handles[].url` | string \| null |
| `handles[].reason` | string \| null |
| `packages[]` | object[] |
| `packages[]` | object |
| `packages[].registry` | string |
| `packages[].name` | string |
| `packages[].status` | string |
| `packages[].url` | string \| null |
| `packages[].reason` | string \| null |
| `meta` | object |
| `meta.duration_ms` | integer |

#### Przykładowe żądanie

```bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/name-check?name=acmeflow&tlds=com%2Cio%2Cai&platforms=github%2Cinstagram%2Ctiktok&packages=npm%2Cpypi"
```

```javascript
const response = await fetch("https://domscan.net/v1/name-check?name=acmeflow&tlds=com%2Cio%2Cai&platforms=github%2Cinstagram%2Ctiktok&packages=npm%2Cpypi", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
```

```python
import os
import requests

response = requests.get(
    "https://domscan.net/v1/name-check?name=acmeflow&tlds=com%2Cio%2Cai&platforms=github%2Cinstagram%2Ctiktok&packages=npm%2Cpypi",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/name-check?name=acmeflow&tlds=com%2Cio%2Cai&platforms=github%2Cinstagram%2Ctiktok&packages=npm%2Cpypi", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
```

```ruby
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/name-check?name=acmeflow&tlds=com%2Cio%2Cai&platforms=github%2Cinstagram%2Ctiktok&packages=npm%2Cpypi")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))
```

#### Przykładowa odpowiedź

```json
{
  "name": "acmeflow",
  "status": "ok",
  "checked_at": "2026-10-13T18:00:00.000Z",
  "verdict": "mostly_available",
  "score": 80,
  "determinacy": 100,
  "summary": {
    "com_available": false,
    "domains": {
      "checked": 2,
      "free": 1,
      "taken": 1,
      "unknown": 0
    },
    "handles": {
      "checked": 2,
      "free": 2,
      "taken": 0,
      "unknown": 0
    },
    "packages": {
      "checked": 1,
      "free": 1,
      "taken": 0,
      "unknown": 0
    }
  },
  "domains": [
    {
      "domain": "acmeflow.com",
      "tld": "com",
      "status": "taken",
      "reason": null
    },
    {
      "domain": "acmeflow.io",
      "tld": "io",
      "status": "available",
      "reason": null
    }
  ],
  "handles": [
    {
      "platform": "github",
      "status": "available",
      "url": null,
      "reason": null
    },
    {
      "platform": "instagram",
      "status": "available",
      "url": null,
      "reason": null
    }
  ],
  "packages": [
    {
      "registry": "npm",
      "name": "acmeflow",
      "status": "not_found",
      "url": null,
      "reason": "similar_name_rules"
    }
  ],
  "meta": {
    "duration_ms": 4210
  }
}
```

#### Kody statusu HTTP

- `200` OK
- `400` Nieprawidłowe żądanie
- `401` Nieautoryzowany
- `402` Wymagana płatność
- `429` Zbyt wiele żądań

## Materiały referencyjne

[OpenAPI 3.0](https://domscan.net/v1/openapi.json)
[Postman](https://domscan.net/v1/postman.json)
[MCP](https://domscan.net/pl/mcp-domain-checker)
