curl --request POST \
--url https://api.aisa.one/apis/v1/apollo/accounts/bulk_create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accounts": [
{
"domain": "acme.com",
"name": "Acme Corporation",
"phone": "+1-555-0135"
},
{
"domain": "example.com",
"linkedin_url": "https://linkedin.com/company/techstart",
"name": "TechStart Inc"
}
]
}
'{
"created_accounts": "<string>",
"created_accounts[].account_stage_id": "<string>",
"created_accounts[].created_at": "<string>",
"created_accounts[].domain": "<string>",
"created_accounts[].id": "<string>",
"created_accounts[].name": "<string>",
"created_accounts[].owner_id": "<string>",
"created_accounts[].phone": "<string>",
"created_accounts[].team_id": "<string>",
"created_accounts[].updated_at": "<string>",
"existing_accounts": "<string>",
"existing_accounts[].account_stage_id": "<string>",
"existing_accounts[].created_at": "<string>",
"existing_accounts[].domain": "<string>",
"existing_accounts[].id": "<string>",
"existing_accounts[].name": "<string>",
"existing_accounts[].owner_id": "<string>",
"existing_accounts[].phone": "<string>",
"existing_accounts[].team_id": "<string>",
"existing_accounts[].updated_at": "<string>"
}Bulk Create Accounts
Create several accounts in one call.
curl --request POST \
--url https://api.aisa.one/apis/v1/apollo/accounts/bulk_create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accounts": [
{
"domain": "acme.com",
"name": "Acme Corporation",
"phone": "+1-555-0135"
},
{
"domain": "example.com",
"linkedin_url": "https://linkedin.com/company/techstart",
"name": "TechStart Inc"
}
]
}
'{
"created_accounts": "<string>",
"created_accounts[].account_stage_id": "<string>",
"created_accounts[].created_at": "<string>",
"created_accounts[].domain": "<string>",
"created_accounts[].id": "<string>",
"created_accounts[].name": "<string>",
"created_accounts[].owner_id": "<string>",
"created_accounts[].phone": "<string>",
"created_accounts[].team_id": "<string>",
"created_accounts[].updated_at": "<string>",
"existing_accounts": "<string>",
"existing_accounts[].account_stage_id": "<string>",
"existing_accounts[].created_at": "<string>",
"existing_accounts[].domain": "<string>",
"existing_accounts[].id": "<string>",
"existing_accounts[].name": "<string>",
"existing_accounts[].owner_id": "<string>",
"existing_accounts[].phone": "<string>",
"existing_accounts[].team_id": "<string>",
"existing_accounts[].updated_at": "<string>"
}post_apollo_accounts, applied per record, so a partial success is normal — read the response rather than assuming every row was created. Writes land in the AIsa workspace, which every caller shares: the record becomes visible and editable by others, and there is no per-caller isolation.
https://mcp.aisa.one/mcp — Claude
Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client
opens a browser, you click Allow once, and there is no key to paste. Your
agent then reaches every endpoint through a few meta tools: search,
list_categories, get_details and batch_quote are free, batch_use is
billed per call. Setup per client is in
Connect via MCP; the live tool list and what each call
costs are on aisa.one/mcp.Request contract
- Method and path: POST /apis/v1/apollo/accounts/bulk_create
- Availability: enabled
- Request URL template: https://api.aisa.one/apis/v1/apollo/accounts/bulk_create
- Runtime facts: 9ab7612cf2d53be794cbf1d65d4a257f986ac6783e53c7c3a5d868e4593061c3
{
"operationId": "post_apollo_accounts_bulk_create",
"method": "POST",
"path": "/apis/v1/apollo/accounts/bulk_create",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"examples": {
"Basic Account Creation": {
"value": {
"accounts": [
{
"domain": "acme.com",
"name": "Acme Corporation",
"phone": "+1-555-0135"
},
{
"domain": "example.com",
"linkedin_url": "https://linkedin.com/company/techstart",
"name": "TechStart Inc"
}
]
}
},
"With CRM IDs (Returns Existing Without Updating)": {
"value": {
"accounts": [
{
"name": "New Name",
"phone": "+1-555-0159",
"salesforce_id": "001pJNj9pix2idKsfj"
},
{
"hubspot_id": "12345678",
"name": "Another New Name"
}
]
}
},
"With Custom Fields and Labels": {
"value": {
"accounts": [
{
"account_stage_id": "507f1f77bcf86cd799439014",
"domain": "example.com",
"name": "Enterprise Client",
"typed_custom_fields": {
"507f1f77bcf86cd799439020": "High Value",
"507f1f77bcf86cd799439021": "Q4 2025"
}
}
],
"append_label_names": [
"Enterprise",
"Priority"
]
}
},
"With Deduplication (Returns Existing Without Updating)": {
"value": {
"accounts": [
{
"domain": "existing-company.com",
"name": "New Company Name"
}
],
"run_dedupe": true
}
}
},
"schema": {
"properties": {
"accounts": {
"description": "Array of account attribute objects (maximum 100 accounts per request)",
"items": {
"properties": {
"account_stage_id": {
"description": "Account stage/pipeline stage ID (BSON::ObjectId format)",
"example": "507f1f77bcf86cd799439014",
"type": "string"
},
"domain": {
"description": "Company domain (e.g., 'example.com')",
"example": "acme.com",
"type": "string"
},
"facebook_url": {
"description": "Facebook page URL",
"example": "https://facebook.com/acme",
"type": "string"
},
"hubspot_id": {
"description": "HubSpot company ID for CRM integration",
"example": "12345678",
"type": "string"
},
"linkedin_url": {
"description": "LinkedIn company page URL",
"example": "https://linkedin.com/company/acme",
"type": "string"
},
"merged_crm_ids": {
"description": "Additional CRM IDs for deduplication",
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"description": "Account name",
"example": "Acme Corporation",
"type": "string"
},
"organization_id": {
"description": "Apollo organization ID",
"example": "507f1f77bcf86cd799439012",
"type": "string"
},
"owner_id": {
"description": "Account owner user ID (BSON::ObjectId format). Defaults to current user if not provided",
"example": "507f1f77bcf86cd799439013",
"type": "string"
},
"parent_account_id": {
"description": "Parent account ID for account hierarchy (BSON::ObjectId format)",
"example": "507f1f77bcf86cd799439016",
"type": "string"
},
"phone": {
"description": "Company phone number",
"example": "+1-555-0135",
"type": "string"
},
"phone_status_cd": {
"description": "Phone validation status",
"type": "string"
},
"raw_address": {
"description": "Company address",
"example": "123 Main St, San Francisco, CA 94105",
"type": "string"
},
"salesforce_id": {
"description": "Salesforce account ID for CRM integration",
"example": "001pJNj9pix2idKsfj",
"type": "string"
},
"twitter_url": {
"description": "Twitter profile URL",
"example": "https://twitter.com/acme",
"type": "string"
},
"typed_custom_fields": {
"additionalProperties": {
"type": "string"
},
"description": "Custom field values as key-value pairs where key is the field_id and value is the field_value",
"example": {
"507f1f77bcf86cd799439020": "High Value",
"507f1f77bcf86cd799439021": "Q4 2025"
},
"type": "object"
}
},
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"append_label_names": {
"description": "Array of label names to add to ALL accounts in this request",
"example": [
"Enterprise",
"High Priority"
],
"items": {
"type": "string"
},
"type": "array"
},
"run_dedupe": {
"default": false,
"description": "Enable aggressive deduplication by domain, organization_id, and name. When false (default), only matches by CRM IDs. When true, also matches by domain, organization_id, and name. Existing accounts are returned without modification in both modes",
"example": true,
"type": "boolean"
}
},
"required": [
"accounts"
],
"type": "object"
}
}
},
"required": true
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "fixed_success",
"customer_pricing": "fixed_success",
"default_request_estimate_usd": 0.012,
"estimate_source": "profile_seed",
"evidence_source": "request_snapshot"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Published reference price: $0.012 USD per successful request. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.012
- Cost contract: fixed_success
- Settlement evidence source: request_snapshot
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Array of account attribute objects (maximum 100 accounts per request)
100Show child attributes
Show child attributes
Array of label names to add to ALL accounts in this request
["Enterprise", "High Priority"]
Enable aggressive deduplication by domain, organization_id, and name. When false (default), only matches by CRM IDs. When true, also matches by domain, organization_id, and name. Existing accounts are returned without modification in both modes
true
Response
Successful response
Accounts created in this request
Account stage ID
Created timestamp
Account domain
Account ID
Account name
Owner ID
Phone number
Team ID
Updated timestamp
Accounts that already existed (dedupe matches)
Account stage ID
Created timestamp
Account domain
Account ID
Account name
Owner ID
Phone number
Team ID
Updated timestamp