recruitmcp-com · Schema

ContactsLookup

CompanyRecruitmentAPIMCPHR

Properties

Name Type Description
data array
cost object
status string pending while the lookup is running. completed when the job poll has the stored contacts.
request_id stringnull Id of the running lookup.
job_id string Set on HTTP 202. Poll GET /v1/contacts/jobs/{job_id}.
poll_url string Path of GET /v1/contacts/jobs/{job_id}. Requires contacts:spend.
canonical_id stringnull Search id when one person was requested.
charged_this_request number Credits charged for the lookup this body describes. Matches cost.credits. On a 202 and on a pending poll it is 0. On a completed poll it is what the lookup that started the job was charged at completi
credits_charged number Set on a contact job (HTTP 202 and GET /v1/contacts/jobs/{job_id}). Credits the ledger charged for this job: 0 while pending, then the same number as cost.credits.
View JSON Schema on GitHub

JSON Schema

recruitmcp-com-contacts-lookup-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/recruitmcp-com/json-schema/recruitmcp-com-contacts-lookup-schema.json",
  "title": "ContactsLookup",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/recruitmcp-com-openapi.json#/components/schemas/ContactsLookup",
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Contacts"
      }
    },
    "cost": {
      "$ref": "#/$defs/Cost"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "completed"
      ],
      "description": "pending while the lookup is running. completed when the job poll has the stored contacts."
    },
    "request_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Id of the running lookup."
    },
    "job_id": {
      "type": "string",
      "description": "Set on HTTP 202. Poll GET /v1/contacts/jobs/{job_id}."
    },
    "poll_url": {
      "type": "string",
      "description": "Path of GET /v1/contacts/jobs/{job_id}. Requires contacts:spend."
    },
    "canonical_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Search id when one person was requested."
    },
    "charged_this_request": {
      "type": "number",
      "description": "Credits charged for the lookup this body describes. Matches cost.credits. On a 202 and on a pending poll it is 0. On a completed poll it is what the lookup that started the job was charged at completion, the same as credits_charged; the poll itself charges nothing. 0 on an idempotent replay, where cost.credits is also 0."
    },
    "credits_charged": {
      "type": "number",
      "description": "Set on a contact job (HTTP 202 and GET /v1/contacts/jobs/{job_id}). Credits the ledger charged for this job: 0 while pending, then the same number as cost.credits."
    }
  },
  "required": [
    "data",
    "cost"
  ],
  "additionalProperties": true,
  "$defs": {
    "Contacts": {
      "type": "object",
      "properties": {
        "profile_id": {
          "type": "string"
        },
        "canonical_id": {
          "type": "string",
          "description": "Search id for this person when both profile ids are known."
        },
        "contacts": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "ready",
                "not_found",
                "pending",
                "expired"
              ]
            },
            "emails": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string"
                  },
                  "type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "enum": [
                      "personal",
                      "work"
                    ],
                    "description": "work or personal when the lookup provides it. Null when it does not."
                  },
                  "line": {
                    "type": "string",
                    "enum": [
                      "mobile",
                      "work_phone",
                      "work",
                      "personal"
                    ],
                    "description": "Provider line. mobile and work_phone stay on phones."
                  },
                  "confidence": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "flagged": {
                    "type": "boolean",
                    "description": "True when a plausibility check says this entry is clearly not this person."
                  },
                  "flag_reason": {
                    "type": "string",
                    "description": "Short reason, at most 12 words. Present when flagged is true."
                  }
                }
              }
            },
            "phones": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "personal",
                      "work"
                    ]
                  },
                  "line": {
                    "type": "string",
                    "enum": [
                      "mobile",
                      "work_phone",
                      "work",
                      "personal"
                    ],
                    "description": "Provider line. mobile and work_phone stay on phones."
                  },
                  "confidence": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "flagged": {
                    "type": "boolean",
                    "description": "True when a plausibility check says this entry is clearly not this person."
                  },
                  "flag_reason": {
                    "type": "string",
                    "description": "Short reason, at most 12 words. Present when flagged is true."
                  }
                }
              }
            },
            "best_email": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "value": {
                  "type": "string"
                },
                "type": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "personal",
                    "work"
                  ],
                  "description": "work or personal when the lookup provides it. Null when it does not."
                },
                "line": {
                  "type": "string",
                  "enum": [
                    "mobile",
                    "work_phone",
                    "work",
                    "personal"
                  ],
                  "description": "Provider line. mobile and work_phone stay on phones."
                },
                "confidence": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "reason": {
                  "type": "string",
                  "enum": [
                    "only_candidate",
                    "mobile",
                    "highest_rating",
                    "personal_preferred",
                    "work_preferred",
                    "matches_employer_domain",
                    "llm_plausibility"
                  ],
                  "description": "Why this address or number was chosen. llm_plausibility means a flagged entry changed the pick."
                }
              },
              "required": [
                "value",
                "type",
                "confidence",
                "reason"
              ]
            },
            "best_phone": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "value": {
                  "type": "string"
                },
                "type": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "personal",
                    "work"
                  ],
                  "description": "work or personal when the lookup provides it. Null when it does not."
                },
                "line": {
                  "type": "string",
                  "enum": [
                    "mobile",
                    "work_phone",
                    "work",
                    "personal"
                  ],
                  "description": "Provider line. mobile and work_phone stay on phones."
                },
                "confidence": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "reason": {
                  "type": "string",
                  "enum": [
                    "only_candidate",
                    "mobile",
                    "highest_rating",
                    "personal_preferred",
                    "work_preferred",
                    "matches_employer_domain",
                    "llm_plausibility"
                  ],
                  "description": "Why this address or number was chosen. llm_plausibility means a flagged entry changed the pick."
                }
              },
              "required": [
                "value",
                "type",
                "confidence",
                "reason"
              ]
            },
            "expires_at": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            }
          },
          "required": [
            "status",
            "emails",
            "phones",
            "best_email",
            "best_phone"
          ]
        },
        "credits": {
          "type": "number",
          "description": "Credits charged for this person on the lookup. 0 on a miss, a cache hit, a pending lookup, and when this response did not itself charge."
        },
        "cost": {
          "$ref": "#/$defs/Cost"
        }
      },
      "required": [
        "profile_id",
        "contacts"
      ]
    },
    "Cost": {
      "type": "object",
      "properties": {
        "credits": {
          "type": "integer",
          "description": "Credits charged by this call. Whole credits. 0 on an idempotent replay, where the body also has replayed: true and the header Idempotent-Replayed: true."
        },
        "cached_items": {
          "type": "integer",
          "description": "Items read from cache. On a replay, the value of the first response."
        },
        "live_items": {
          "type": "integer",
          "description": "Items fetched live by this call. 0 on a replay."
        },
        "upstream_calls": {
          "type": "integer",
          "description": "Index calls made by this call. 0 on a replay."
        }
      },
      "required": [
        "credits"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/recruitmcp-com-contacts-lookup"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.