> This page is optimized for agents. Use the linked Markdown pages and llms.txt indexes for related API content.

# Look up one buying signal: hiring, funding, tech stack, news, headcount or a job change. Charges credits only on a hit

- Product: Reachiz API
- Section: Signals
- Snapshot: v1
- Method: `POST`
- Path: `/v1/signals`

## Request body

Required: yes  
Content types: `application/json`  

### `kind`

Type: `string`  
Required: yes  
Allowed values: `hiring`, `funding`, `techStack`, `news`, `headcount`, `jobChange`  

Which signal: hiring (open job postings at a company, 2 credits); funding (a company's funding rounds, 2 credits); techStack (technologies a company's website uses, 2 credits); news (recent news about a company, 2 credits); headcount (headcount by department and its monthly history, 6 credits); jobChange (whether a person changed employer or role, 3 credits)

### `domain`

Type: `string`  
Required: no  

Company website domain, like acme.com. Every signal but jobChange needs it

### `fullName`

Type: `string`  
Required: no  

jobChange: the person's full name

### `companyName`

Type: `string`  
Required: no  

jobChange: the company you last knew them at

### `jobTitle`

Type: `string`  
Required: no  

jobChange: the title you last knew, optional

## Execute with curl

```bash
curl -X POST "https://prestigious-goldfish-661.convex.site/v1/signals" \
    -H "Authorization: Bearer $REACHIZ_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"kind":"hiring"}'
```

## Execute with TypeScript

```ts
const response = await fetch("https://prestigious-goldfish-661.convex.site/v1/signals", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.REACHIZ_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"kind":"hiring"}),
});

const data = await response.json();
```

## Responses

### Response `200`

Category: success  

Success

#### `application/json`

##### Generated example

```json
{
  "signal": "hiring",
  "found": true,
  "credits": -9007199254740991,
  "data": {}
}
```

##### Schema

###### object

Type: `object`  

###### `signal`

Type: `string`  
Required: yes  
Allowed values: `hiring`, `funding`, `techStack`, `news`, `headcount`, `jobChange`  

###### `found`

Type: `boolean`  
Required: yes  

###### `credits`

Type: `number`  
Required: yes  

Credits charged: the signal's price on a hit, 0 on a miss

###### `data`

Type: `object`  
Required: yes  

###### object

Type: `object`  

###### unknown

Type: `unknown`  

### Response `400`

Category: client-error  

The request is not valid. error.fields lists each problem.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

### Response `401`

Category: client-error  

The API key is missing or not valid.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

### Response `403`

Category: client-error  

The key lacks the scope this route needs.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

### Response `409`

Category: client-error  

The Idempotency-Key belongs to a different request, or the state does not allow this action.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

### Response `429`

Category: client-error  

Too many requests.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

### Response `503`

Category: server-error  

The service is busy. Retry with backoff.

#### `application/json`

##### Generated example

```json
{
  "error": {
    "code": "invalid_request",
    "message": "message",
    "requestId": "requestId",
    "recovery": "recovery",
    "fields": [
      {
        "path": "path",
        "message": "message"
      }
    ]
  }
}
```

##### Schema

###### Error

Type: `Error`  

###### `error`

Type: `object`  
Required: yes  

###### `code`

Type: `string`  
Required: yes  
Allowed values: `invalid_request`, `not_supported`, `unauthorized`, `subscription_required`, `forbidden`, `plan_limit_exceeded`, `workspace_suspended`, `not_found`, `conflict`, `conversation_changed`, `rate_limited`, `internal`, `unavailable`  

###### `message`

Type: `string`  
Required: yes  

###### `requestId`

Type: `string`  
Required: yes  

###### `recovery`

Type: `string`  
Required: no  

What to do next.

###### `fields`

Type: `object[]`  
Required: no  

###### object

Type: `object`  

###### `path`

Type: `string`  
Required: yes  

###### `message`

Type: `string`  
Required: yes  

## Related representations

- [Human documentation](/reachiz/sections/signals/operations/post-v1-signals/)
- [curl Markdown](/reachiz/sections/signals/operations/post-v1-signals.md?lang=curl)
- [TypeScript Markdown](/reachiz/sections/signals/operations/post-v1-signals.md?lang=typescript)
- [site llms.txt](/llms.txt)
- [product llms.txt](/reachiz/llms.txt)
- [snapshot llms.txt](/reachiz/llms.txt)
