{"openapi":"3.1.0","info":{"title":"Neon CRM (BYOK) API","version":"0.1.0","description":"Neon CRM (BYOK) lets an AI assistant read your own Neon CRM data through the Neon CRM API with a key you supply (organization ID). Read-only: 11 tools (get_organization_profile, get_account, list_account_donations, get_donation, list_account_memberships, list_events, list_event_attendees, list_recurring_donations, list_campaigns, list_funds, list_membership_levels). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-neoncrm.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-neoncrm/docs"},"termsOfService":"https://connectorbay.com/byok-neoncrm/terms"},"servers":[{"url":"https://byok-neoncrm.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-neoncrm/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_organization_profile":{"post":{"operationId":"get_organization_profile","summary":"Show the Neon CRM organization the key belongs to: name, organization id and app URL. Use for \"Which Neon CRM organizati","description":"Show the Neon CRM organization the key belongs to: name, organization id and app URL. Use for \"Which Neon CRM organization is this key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organization_profileArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_account":{"post":{"operationId":"get_account","summary":"Get one donor or company account: contact name, e-mail, membership status, source and timestamps. Use for \"Show Neon CRM","description":"Get one donor or company account: contact name, e-mail, membership status, source and timestamps. Use for \"Show Neon CRM account 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Neon CRM account id (a number as text), for example '1234'.","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"get_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_account_donations":{"post":{"operationId":"list_account_donations","summary":"List the donations of one account with date, amount, status, fund, campaign and purpose. Use for \"What has Neon CRM acco","description":"List the donations of one account with date, amount, status, fund, campaign and purpose. Use for \"What has Neon CRM account 1234 donated\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Neon CRM account id (a number as text), for example '1234'.","maxLength":200,"title":"Account Id","type":"string"},"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"},"sort_column":{"anyOf":[{"enum":["date","amount"],"type":"string"},{"type":"null"}],"default":"date","description":"Sort by date or amount.","title":"Sort Column"},"sort_direction":{"anyOf":[{"enum":["DESC","ASC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"DESC (newest or largest first) or ASC.","title":"Sort Direction"}},"required":["account_id"],"title":"list_account_donationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_donation":{"post":{"operationId":"get_donation","summary":"Get one donation by id: amount, date, status, fund, campaign, purpose and its payments. Use for \"Show Neon CRM donation ","description":"Get one donation by id: amount, date, status, fund, campaign, purpose and its payments. Use for \"Show Neon CRM donation 5678\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"donation_id":{"description":"Neon CRM donation id.","maxLength":200,"title":"Donation Id","type":"string"}},"required":["donation_id"],"title":"get_donationArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_account_memberships":{"post":{"operationId":"list_account_memberships","summary":"List an account's membership history with level, term dates, fee, status and whether it is active. Use for \"Is Neon CRM ","description":"List an account's membership history with level, term dates, fee, status and whether it is active. Use for \"Is Neon CRM account 1234 an active member\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Neon CRM account id (a number as text), for example '1234'.","maxLength":200,"title":"Account Id","type":"string"},"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 200; the provider default is 20).","title":"Page Size"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to show only active memberships.","title":"Is Active"}},"required":["account_id"],"title":"list_account_membershipsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List events with name, dates, capacity, location city, campaign and archive flag; filter by name or date window. Use for","description":"List events with name, dates, capacity, location city, campaign and archive flag; filter by name or date window. Use for \"Which Neon CRM events are coming up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 200; the provider default is 20).","title":"Page Size"},"event_name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Part of the event name.","title":"Event Name"},"start_date_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events starting on or after this date, YYYY-MM-DD.","title":"Start Date After"},"start_date_before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events starting on or before this date, YYYY-MM-DD.","title":"Start Date Before"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include archived events instead of active ones.","title":"Archived"}},"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_event_attendees":{"post":{"operationId":"list_event_attendees","summary":"List the attendees of one event with name, e-mail, ticket, registration status and attended flag. Use for \"Who is regist","description":"List the attendees of one event with name, e-mail, ticket, registration status and attended flag. Use for \"Who is registered for Neon CRM event 42\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_id":{"description":"Neon CRM event id.","maxLength":200,"title":"Event Id","type":"string"},"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"}},"required":["event_id"],"title":"list_event_attendeesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_recurring_donations":{"post":{"operationId":"list_recurring_donations","summary":"List recurring donation schedules with donor account, amount, frequency and next payment date. Use for \"Which Neon CRM r","description":"List recurring donation schedules with donor account, amount, frequency and next payment date. Use for \"Which Neon CRM recurring donations are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 200; the provider default is 20).","title":"Page Size"},"status":{"anyOf":[{"enum":["Active","Inactive"],"type":"string"},{"type":"null"}],"default":null,"description":"Active or Inactive.","title":"Status"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only schedules of this account id.","title":"Account Id"},"next_recurring_from":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only schedules whose next payment is on or after this date, YYYY-MM-DD.","title":"Next Recurring From"}},"title":"list_recurring_donationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_campaigns":{"post":{"operationId":"list_campaigns","summary":"List the campaigns of the organization with id, code, name and status. Use for \"What campaigns does my Neon CRM have\".","description":"List the campaigns of the organization with id, code, name and status. Use for \"What campaigns does my Neon CRM have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_campaignsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_funds":{"post":{"operationId":"list_funds","summary":"List the donation funds with id, code, name and status. Use for \"Which funds can donations go to in Neon CRM\".","description":"List the donation funds with id, code, name and status. Use for \"Which funds can donations go to in Neon CRM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_fundsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_membership_levels":{"post":{"operationId":"list_membership_levels","summary":"List membership levels with code, rank, type (individual, company or household) and status. Use for \"What membership lev","description":"List membership levels with code, rank, type (individual, company or household) and status. Use for \"What membership levels exist in Neon CRM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"current_page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Current Page"},"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 200; the provider default is 20).","title":"Page Size"},"status":{"anyOf":[{"enum":["ACTIVE","INACTIVE"],"type":"string"},{"type":"null"}],"default":null,"description":"ACTIVE or INACTIVE.","title":"Status"}},"title":"list_membership_levelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}