naftiko: 1.0.0-alpha2 info: label: Apollo.io API description: 'Apollo.io API. 28 operations. Lead operation: Create an account. Self-contained Naftiko capability covering one Apollo business surface.' tags: - Apollo - Apollo.io API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: APOLLO_API_KEY: APOLLO_API_KEY capability: consumes: - type: http namespace: apollo baseUri: https://api.apollo.io/v1 description: Apollo.io API business capability. Self-contained, no shared references. resources: - name: accounts path: /accounts operations: - name: createaccount method: POST description: Create an account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: accounts-bulk_create path: /accounts/bulk_create operations: - name: bulkcreateaccounts method: POST description: Bulk create accounts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: accounts-id path: /accounts/{id} operations: - name: updateaccount method: PATCH description: Update an account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: contacts path: /contacts operations: - name: createcontact method: POST description: Create a contact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: contacts-bulk_create path: /contacts/bulk_create operations: - name: bulkcreatecontacts method: POST description: Bulk create contacts outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: contacts-id path: /contacts/{id} operations: - name: updatecontact method: PATCH description: Update a contact outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: email_accounts path: /email_accounts operations: - name: listemailaccounts method: GET description: Get a list of email accounts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: emailer_campaigns-search path: /emailer_campaigns/search operations: - name: searchsequences method: POST description: Search for sequences outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: emailer_campaigns-id-add_contact_ids path: /emailer_campaigns/{id}/add_contact_ids operations: - name: addcontactstosequence method: POST description: Add contacts to sequence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: emailer_campaigns-id-update_contact_status path: /emailer_campaigns/{id}/update_contact_status operations: - name: updatecontactstatusinsequence method: POST description: Update contact status in sequence outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: mixed_companies-search path: /mixed_companies/search operations: - name: organizationsearch method: POST description: Organization search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: mixed_people-search path: /mixed_people/search operations: - name: peoplesearch method: POST description: People search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: opportunities path: /opportunities operations: - name: createdeal method: POST description: Create deal outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: opportunities-search path: /opportunities/search operations: - name: listdeals method: GET description: List all deals outputRawFormat: json outputParameters: - name: result type: object value: $. - name: opportunities-id path: /opportunities/{id} operations: - name: viewdeal method: GET description: View deal outputRawFormat: json outputParameters: - name: result type: object value: $. - name: organizations-enrich path: /organizations/enrich operations: - name: organizationenrichment method: GET description: Organization enrichment outputRawFormat: json outputParameters: - name: result type: object value: $. - name: organizations-job_postings path: /organizations/job_postings operations: - name: organizationjobpostings method: GET description: Organization job postings outputRawFormat: json outputParameters: - name: result type: object value: $. - name: people-bulk_match path: /people/bulk_match operations: - name: bulkpeopleenrichment method: POST description: Bulk people enrichment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: people-match path: /people/match operations: - name: peopleenrichment method: POST description: People enrichment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: phone_calls path: /phone_calls operations: - name: createcallrecords method: POST description: Create call records outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: phone_calls-search path: /phone_calls/search operations: - name: searchcalls method: GET description: Search for calls outputRawFormat: json outputParameters: - name: result type: object value: $. - name: phone_calls-id path: /phone_calls/{id} operations: - name: updatecallrecords method: PUT description: Update call records outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: sync_report path: /sync_report operations: - name: syncreport method: POST description: Sync report outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tasks path: /tasks operations: - name: createtask method: POST description: Create a task outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tasks-bulk_create path: /tasks/bulk_create operations: - name: bulkcreatetasks method: POST description: Bulk create tasks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: tasks-search path: /tasks/search operations: - name: searchtasks method: POST description: Search tasks outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: usage_stats-api_usage_stats path: /usage_stats/api_usage_stats operations: - name: viewapiusagestats method: POST description: View API usage stats outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: users-search path: /users/search operations: - name: listusers method: GET description: Get a list of users outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: apollo-rest port: 8080 description: REST adapter for Apollo.io API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/accounts name: accounts description: REST surface for accounts. operations: - method: POST name: createaccount description: Create an account call: apollo.createaccount with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/bulk-create name: accounts-bulk-create description: REST surface for accounts-bulk_create. operations: - method: POST name: bulkcreateaccounts description: Bulk create accounts call: apollo.bulkcreateaccounts with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{id} name: accounts-id description: REST surface for accounts-id. operations: - method: PATCH name: updateaccount description: Update an account call: apollo.updateaccount with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contacts name: contacts description: REST surface for contacts. operations: - method: POST name: createcontact description: Create a contact call: apollo.createcontact with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contacts/bulk-create name: contacts-bulk-create description: REST surface for contacts-bulk_create. operations: - method: POST name: bulkcreatecontacts description: Bulk create contacts call: apollo.bulkcreatecontacts with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/contacts/{id} name: contacts-id description: REST surface for contacts-id. operations: - method: PATCH name: updatecontact description: Update a contact call: apollo.updatecontact with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/email-accounts name: email-accounts description: REST surface for email_accounts. operations: - method: GET name: listemailaccounts description: Get a list of email accounts call: apollo.listemailaccounts outputParameters: - type: object mapping: $. - path: /v1/emailer-campaigns/search name: emailer-campaigns-search description: REST surface for emailer_campaigns-search. operations: - method: POST name: searchsequences description: Search for sequences call: apollo.searchsequences with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/emailer-campaigns/{id}/add-contact-ids name: emailer-campaigns-id-add-contact-ids description: REST surface for emailer_campaigns-id-add_contact_ids. operations: - method: POST name: addcontactstosequence description: Add contacts to sequence call: apollo.addcontactstosequence with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/emailer-campaigns/{id}/update-contact-status name: emailer-campaigns-id-update-contact-status description: REST surface for emailer_campaigns-id-update_contact_status. operations: - method: POST name: updatecontactstatusinsequence description: Update contact status in sequence call: apollo.updatecontactstatusinsequence with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/mixed-companies/search name: mixed-companies-search description: REST surface for mixed_companies-search. operations: - method: POST name: organizationsearch description: Organization search call: apollo.organizationsearch with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/mixed-people/search name: mixed-people-search description: REST surface for mixed_people-search. operations: - method: POST name: peoplesearch description: People search call: apollo.peoplesearch with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/opportunities name: opportunities description: REST surface for opportunities. operations: - method: POST name: createdeal description: Create deal call: apollo.createdeal with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/opportunities/search name: opportunities-search description: REST surface for opportunities-search. operations: - method: GET name: listdeals description: List all deals call: apollo.listdeals outputParameters: - type: object mapping: $. - path: /v1/opportunities/{id} name: opportunities-id description: REST surface for opportunities-id. operations: - method: GET name: viewdeal description: View deal call: apollo.viewdeal outputParameters: - type: object mapping: $. - path: /v1/organizations/enrich name: organizations-enrich description: REST surface for organizations-enrich. operations: - method: GET name: organizationenrichment description: Organization enrichment call: apollo.organizationenrichment outputParameters: - type: object mapping: $. - path: /v1/organizations/job-postings name: organizations-job-postings description: REST surface for organizations-job_postings. operations: - method: GET name: organizationjobpostings description: Organization job postings call: apollo.organizationjobpostings outputParameters: - type: object mapping: $. - path: /v1/people/bulk-match name: people-bulk-match description: REST surface for people-bulk_match. operations: - method: POST name: bulkpeopleenrichment description: Bulk people enrichment call: apollo.bulkpeopleenrichment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/people/match name: people-match description: REST surface for people-match. operations: - method: POST name: peopleenrichment description: People enrichment call: apollo.peopleenrichment with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/phone-calls name: phone-calls description: REST surface for phone_calls. operations: - method: POST name: createcallrecords description: Create call records call: apollo.createcallrecords with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/phone-calls/search name: phone-calls-search description: REST surface for phone_calls-search. operations: - method: GET name: searchcalls description: Search for calls call: apollo.searchcalls outputParameters: - type: object mapping: $. - path: /v1/phone-calls/{id} name: phone-calls-id description: REST surface for phone_calls-id. operations: - method: PUT name: updatecallrecords description: Update call records call: apollo.updatecallrecords with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/sync-report name: sync-report description: REST surface for sync_report. operations: - method: POST name: syncreport description: Sync report call: apollo.syncreport with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tasks name: tasks description: REST surface for tasks. operations: - method: POST name: createtask description: Create a task call: apollo.createtask with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tasks/bulk-create name: tasks-bulk-create description: REST surface for tasks-bulk_create. operations: - method: POST name: bulkcreatetasks description: Bulk create tasks call: apollo.bulkcreatetasks with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/tasks/search name: tasks-search description: REST surface for tasks-search. operations: - method: POST name: searchtasks description: Search tasks call: apollo.searchtasks with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/usage-stats/api-usage-stats name: usage-stats-api-usage-stats description: REST surface for usage_stats-api_usage_stats. operations: - method: POST name: viewapiusagestats description: View API usage stats call: apollo.viewapiusagestats with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/search name: users-search description: REST surface for users-search. operations: - method: GET name: listusers description: Get a list of users call: apollo.listusers outputParameters: - type: object mapping: $. - type: mcp namespace: apollo-mcp port: 9090 transport: http description: MCP adapter for Apollo.io API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-account description: Create an account hints: readOnly: false destructive: false idempotent: false call: apollo.createaccount with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-create-accounts description: Bulk create accounts hints: readOnly: false destructive: false idempotent: false call: apollo.bulkcreateaccounts with: body: tools.body outputParameters: - type: object mapping: $. - name: update-account description: Update an account hints: readOnly: false destructive: false idempotent: true call: apollo.updateaccount with: body: tools.body outputParameters: - type: object mapping: $. - name: create-contact description: Create a contact hints: readOnly: false destructive: false idempotent: false call: apollo.createcontact with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-create-contacts description: Bulk create contacts hints: readOnly: false destructive: false idempotent: false call: apollo.bulkcreatecontacts with: body: tools.body outputParameters: - type: object mapping: $. - name: update-contact description: Update a contact hints: readOnly: false destructive: false idempotent: true call: apollo.updatecontact with: body: tools.body outputParameters: - type: object mapping: $. - name: get-list-email-accounts description: Get a list of email accounts hints: readOnly: true destructive: false idempotent: true call: apollo.listemailaccounts outputParameters: - type: object mapping: $. - name: search-sequences description: Search for sequences hints: readOnly: true destructive: false idempotent: false call: apollo.searchsequences with: body: tools.body outputParameters: - type: object mapping: $. - name: add-contacts-sequence description: Add contacts to sequence hints: readOnly: false destructive: false idempotent: false call: apollo.addcontactstosequence with: body: tools.body outputParameters: - type: object mapping: $. - name: update-contact-status-sequence description: Update contact status in sequence hints: readOnly: false destructive: false idempotent: false call: apollo.updatecontactstatusinsequence with: body: tools.body outputParameters: - type: object mapping: $. - name: organization-search description: Organization search hints: readOnly: true destructive: false idempotent: false call: apollo.organizationsearch with: body: tools.body outputParameters: - type: object mapping: $. - name: people-search description: People search hints: readOnly: true destructive: false idempotent: false call: apollo.peoplesearch with: body: tools.body outputParameters: - type: object mapping: $. - name: create-deal description: Create deal hints: readOnly: false destructive: false idempotent: false call: apollo.createdeal with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-deals description: List all deals hints: readOnly: true destructive: false idempotent: true call: apollo.listdeals outputParameters: - type: object mapping: $. - name: view-deal description: View deal hints: readOnly: true destructive: false idempotent: true call: apollo.viewdeal outputParameters: - type: object mapping: $. - name: organization-enrichment description: Organization enrichment hints: readOnly: true destructive: false idempotent: true call: apollo.organizationenrichment outputParameters: - type: object mapping: $. - name: organization-job-postings description: Organization job postings hints: readOnly: true destructive: false idempotent: true call: apollo.organizationjobpostings outputParameters: - type: object mapping: $. - name: bulk-people-enrichment description: Bulk people enrichment hints: readOnly: false destructive: false idempotent: false call: apollo.bulkpeopleenrichment with: body: tools.body outputParameters: - type: object mapping: $. - name: people-enrichment description: People enrichment hints: readOnly: false destructive: false idempotent: false call: apollo.peopleenrichment with: body: tools.body outputParameters: - type: object mapping: $. - name: create-call-records description: Create call records hints: readOnly: false destructive: false idempotent: false call: apollo.createcallrecords with: body: tools.body outputParameters: - type: object mapping: $. - name: search-calls description: Search for calls hints: readOnly: true destructive: false idempotent: true call: apollo.searchcalls outputParameters: - type: object mapping: $. - name: update-call-records description: Update call records hints: readOnly: false destructive: false idempotent: true call: apollo.updatecallrecords with: body: tools.body outputParameters: - type: object mapping: $. - name: sync-report description: Sync report hints: readOnly: false destructive: false idempotent: false call: apollo.syncreport with: body: tools.body outputParameters: - type: object mapping: $. - name: create-task description: Create a task hints: readOnly: false destructive: false idempotent: false call: apollo.createtask with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-create-tasks description: Bulk create tasks hints: readOnly: false destructive: false idempotent: false call: apollo.bulkcreatetasks with: body: tools.body outputParameters: - type: object mapping: $. - name: search-tasks description: Search tasks hints: readOnly: true destructive: false idempotent: false call: apollo.searchtasks with: body: tools.body outputParameters: - type: object mapping: $. - name: view-api-usage-stats description: View API usage stats hints: readOnly: false destructive: false idempotent: false call: apollo.viewapiusagestats with: body: tools.body outputParameters: - type: object mapping: $. - name: get-list-users description: Get a list of users hints: readOnly: true destructive: false idempotent: true call: apollo.listusers outputParameters: - type: object mapping: $.