openapi: 3.1.0 info: title: Hunter Account Leads API description: 'Returns information about your Hunter account: plan name and level, reset date for credits, team identifier, and per-meter usage counters (searches, verifications, credits). ' version: v2 contact: name: Hunter Support url: https://hunter.io/contact servers: - url: https://api.hunter.io/v2 description: Production security: - ApiKeyQuery: [] - ApiKeyHeader: [] - BearerAuth: [] tags: - name: Leads description: Lead management. paths: /leads: get: summary: Hunter List Leads description: List leads with optional filters and pagination. operationId: listLeads tags: - Leads parameters: - name: leads_list_id in: query schema: type: integer - name: email in: query schema: type: string format: email - name: first_name in: query schema: type: string - name: last_name in: query schema: type: string - name: company in: query schema: type: string - name: sync_status in: query schema: type: string enum: - pending - error - success - name: verification_status in: query schema: type: string - name: query in: query description: Free-text search across name and email. schema: type: string - name: limit in: query schema: type: integer default: 20 minimum: 1 maximum: 1000 - name: offset in: query schema: type: integer default: 0 maximum: 100000 - $ref: '#/components/parameters/ApiKeyQuery' responses: '200': description: A page of leads. content: application/json: schema: $ref: '#/components/schemas/LeadList' post: summary: Hunter Create Lead description: Add a new lead. operationId: createLead tags: - Leads parameters: - $ref: '#/components/parameters/ApiKeyQuery' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadInput' responses: '201': description: Created lead. content: application/json: schema: $ref: '#/components/schemas/LeadResponse' put: summary: Hunter Upsert Lead description: Create or update a lead by email match. operationId: upsertLead tags: - Leads parameters: - $ref: '#/components/parameters/ApiKeyQuery' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadInput' responses: '200': description: Upserted lead. content: application/json: schema: $ref: '#/components/schemas/LeadResponse' /leads/{id}: parameters: - name: id in: path required: true schema: type: integer - $ref: '#/components/parameters/ApiKeyQuery' get: summary: Hunter Get Lead description: Retrieve a single lead by id. operationId: getLead tags: - Leads responses: '200': description: Lead detail. content: application/json: schema: $ref: '#/components/schemas/LeadResponse' '404': $ref: '#/components/responses/Error' patch: summary: Hunter Update Lead description: Update lead attributes. operationId: updateLead tags: - Leads requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LeadInput' responses: '200': description: Updated lead. content: application/json: schema: $ref: '#/components/schemas/LeadResponse' delete: summary: Hunter Delete Lead description: Delete a lead. operationId: deleteLead tags: - Leads responses: '204': description: Deleted. components: parameters: ApiKeyQuery: name: api_key in: query required: true description: Your Hunter API key. schema: type: string schemas: Lead: allOf: - $ref: '#/components/schemas/LeadInput' - type: object properties: id: type: integer sync_status: type: string sending_status: type: string verification: type: object properties: status: type: string date: type: string format: date-time leads_list: type: object properties: id: type: integer name: type: string created_at: type: string format: date-time last_activity_at: type: string format: date-time last_contacted_at: type: string format: date-time LeadList: type: object properties: data: type: object properties: leads: type: array items: $ref: '#/components/schemas/Lead' meta: type: object properties: count: type: integer total: type: integer Error: type: object properties: errors: type: array items: type: object properties: id: type: string code: type: integer details: type: string LeadInput: type: object required: - email properties: email: type: string format: email first_name: type: string last_name: type: string position: type: string company: type: string company_industry: type: string company_size: type: string confidence_score: type: integer minimum: 0 maximum: 100 website: type: string format: uri country_code: type: string linkedin_url: type: string format: uri phone_number: type: string twitter: type: string notes: type: string source: type: string leads_list_id: type: integer leads_list_ids: type: array items: type: integer custom_attributes: type: object additionalProperties: type: string LeadResponse: type: object properties: data: $ref: '#/components/schemas/Lead' responses: Error: description: Error response. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: ApiKeyQuery: type: apiKey in: query name: api_key ApiKeyHeader: type: apiKey in: header name: X-API-KEY BearerAuth: type: http scheme: bearer