{"openapi":"3.1.0","info":{"title":"Plivo 10DLC (BYOK) API","version":"0.1.0","description":"Plivo 10DLC (BYOK) lets an AI assistant read your own Plivo 10DLC data through the Plivo 10DLC API with a key you supply (Auth ID). Read-only: 9 tools (list_brands, get_brand, get_brand_usecases, list_campaigns, get_campaign, list_campaign_numbers, get_campaign_number_status, list_tollfree_verifications, get_tollfree_verification). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-plivo-10dlc.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-plivo-10dlc/docs"},"termsOfService":"https://connectorbay.com/byok-plivo-10dlc/terms"},"servers":[{"url":"https://byok-plivo-10dlc.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-plivo-10dlc/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/list_brands":{"post":{"operationId":"list_brands","summary":"List 10DLC brands with type, entity type, vertical, website, registration status, vetting status and score. Tax IDs, add","description":"List 10DLC brands with type, entity type, vertical, website, registration status, vetting status and score. Tax IDs, addresses and contact details are not returned. Use for \"Which of my Plivo 10DLC brands are registered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 20, default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"},"registration_status":{"anyOf":[{"enum":["FAILED","PROCESSING","COMPLETED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only brands with this status.","title":"Registration Status"},"type":{"anyOf":[{"const":"STANDARD","type":"string"},{"type":"null"}],"default":null,"description":"Only brands of this registration type.","title":"Type"}},"required":["auth_id"],"title":"list_brandsArguments","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_brand":{"post":{"operationId":"get_brand","summary":"Get one 10DLC brand: type, entity type, vertical, website, registration status, vetting status and score, declined reaso","description":"Get one 10DLC brand: type, entity type, vertical, website, registration status, vetting status and score, declined reasons. Tax IDs, addresses and contact details are not returned. Use for \"What is the vetting status of Plivo brand BVMN1EM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"brand_id":{"description":"10DLC brand ID, for example BXXXXXX, from the brand list.","maxLength":20,"title":"Brand Id","type":"string"}},"required":["auth_id","brand_id"],"title":"get_brandArguments","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_brand_usecases":{"post":{"operationId":"get_brand_usecases","summary":"List the campaign use cases a brand is allowed to register, with code, name and details. Use for \"Which campaign use cas","description":"List the campaign use cases a brand is allowed to register, with code, name and details. Use for \"Which campaign use cases can my Plivo brand register\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"brand_id":{"description":"10DLC brand ID, for example BXXXXXX, from the brand list.","maxLength":20,"title":"Brand Id","type":"string"}},"required":["auth_id","brand_id"],"title":"get_brand_usecasesArguments","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 10DLC campaigns with brand, use case, registration status, error reason, source, attributes and carrier throughput ","description":"List 10DLC campaigns with brand, use case, registration status, error reason, source, attributes and carrier throughput metadata. Sample message texts are not returned. Use for \"Which Plivo 10DLC campaigns failed registration\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 20, default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"},"brand_id":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns of this brand.","title":"Brand Id"},"registration_status":{"anyOf":[{"enum":["Active","Failed","Processing","Expired"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this status.","title":"Registration Status"},"usecase":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this use case, for example 2FA, MARKETING or CUSTOMER_CARE.","title":"Usecase"},"campaign_source":{"anyOf":[{"enum":["plivo","shared"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns of this source.","title":"Campaign Source"}},"required":["auth_id"],"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/get_campaign":{"post":{"operationId":"get_campaign","summary":"Get one 10DLC campaign: brand, use case, registration status, error details, attributes (embedded links, opt-in, opt-out","description":"Get one 10DLC campaign: brand, use case, registration status, error details, attributes (embedded links, opt-in, opt-out, help) and carrier throughput metadata. Use for \"What are the carrier throughput limits of Plivo campaign CY5JZZZ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"campaign_id":{"description":"10DLC campaign ID, for example CXXXXXX, from the campaign list.","maxLength":20,"title":"Campaign Id","type":"string"}},"required":["auth_id","campaign_id"],"title":"get_campaignArguments","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_campaign_numbers":{"post":{"operationId":"list_campaign_numbers","summary":"List the phone numbers linked to a 10DLC campaign with the linking status of each. Use for \"Which of my Plivo numbers ar","description":"List the phone numbers linked to a 10DLC campaign with the linking status of each. Use for \"Which of my Plivo numbers are linked to campaign CY5JZZZ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"campaign_id":{"description":"10DLC campaign ID, for example CXXXXXX, from the campaign list.","maxLength":20,"title":"Campaign Id","type":"string"}},"required":["auth_id","campaign_id"],"title":"list_campaign_numbersArguments","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_campaign_number_status":{"post":{"operationId":"get_campaign_number_status","summary":"Get the campaign linking status of one of your numbers (digits only, with country code). Use for \"Is Plivo number 121255","description":"Get the campaign linking status of one of your numbers (digits only, with country code). Use for \"Is Plivo number 12125557777 linked to campaign CY5JZZZ yet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"campaign_id":{"description":"10DLC campaign ID, for example CXXXXXX, from the campaign list.","maxLength":20,"title":"Campaign Id","type":"string"},"number":{"description":"One of your numbers, digits only with country code, for example 12125557777.","maxLength":20,"title":"Number","type":"string"}},"required":["auth_id","campaign_id","number"],"title":"get_campaign_number_statusArguments","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_tollfree_verifications":{"post":{"operationId":"list_tollfree_verifications","summary":"List toll-free number verification requests with use case, summary, volume, opt-in type, status and error message. Sampl","description":"List toll-free number verification requests with use case, summary, volume, opt-in type, status and error message. Sample messages are not returned. Use for \"What is the status of my Plivo toll-free verification requests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"limit":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 20, default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"},"number":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only requests for this toll-free number.","title":"Number"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only requests with this status, for example SUBMITTED or APPROVED.","title":"Status"},"profile_uuid":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only requests of this profile UUID.","title":"Profile Uuid"},"usecase":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only these use cases, comma-separated, exact match.","title":"Usecase"}},"required":["auth_id"],"title":"list_tollfree_verificationsArguments","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_tollfree_verification":{"post":{"operationId":"get_tollfree_verification","summary":"Get one toll-free verification request by UUID: number, use case, summary, volume, opt-in type, status and error message","description":"Get one toll-free verification request by UUID: number, use case, summary, volume, opt-in type, status and error message. Use for \"Was my Plivo toll-free verification approved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"auth_id":{"description":"Your Plivo Auth ID (the same value used as the key).","maxLength":40,"title":"Auth Id","type":"string"},"uuid":{"description":"The verification request UUID from the list.","maxLength":40,"title":"Uuid","type":"string"}},"required":["auth_id","uuid"],"title":"get_tollfree_verificationArguments","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}}}}