{"openapi":"3.1.0","info":{"title":"SharePoint Fax API","version":"1.0.0","description":"Send faxes, follow them to delivery and hear about received faxes. SharePoint Fax — Powered by 365agents Inc."},"servers":[{"url":"https://app.sharepointfax.com/api/public/v1"}],"security":[{"ApiKey":[]},{"Bearer":[]}],"paths":{"/faxes":{"post":{"operationId":"SendFax","summary":"Send a fax","tags":["Faxes"],"description":"Sends a PDF from one of your numbers with no review step. The PDF is saved to the group's SharePoint outbound folder first. Requires fax.send; at most 20 sends a minute per key; the body needs a Content-Length.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"8–128 letters, digits, - or _. The same key and body replays the original answer.","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{8,128}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendFaxRequest"},"examples":{"inline":{"value":{"from":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60","to":"+14255550100","document":{"contentBase64":"JVBERi0xLjcKJcKlwrHDqwo=","fileName":"referral.pdf"},"cover":{"to":"Dr. Lee","from":"Referrals","note":"Please call on receipt."}}}}},"multipart/form-data":{"schema":{"type":"object","required":["from","to","file"],"properties":{"from":{"type":"string"},"to":{"type":"string"},"file":{"type":"string","contentMediaType":"application/pdf"},"cover.to":{"type":"string","maxLength":120},"cover.from":{"type":"string","maxLength":120},"cover.note":{"type":"string","maxLength":500}}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaxAccepted"}}},"headers":{"Location":{"schema":{"type":"string"},"description":"The fax resource"}}},"400":{"description":"idempotency_key_required: Send an Idempotency-Key header of 8 to 128 letters, digits, - or _","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs; number_not_allowed: This key can't use that number or group; allowance_exhausted: This workspace's page allowance is used up","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"not_found: Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"idempotency_conflict: This Idempotency-Key was already used with a different request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"411":{"description":"length_required: Send the request with a Content-Length header","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"pdf_invalid: The document must be a PDF of 1 to 200 pages, up to 20 MiB, without a password; validation_failed: The request is not valid","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"ListFaxes","summary":"List faxes","tags":["Faxes"],"description":"Faxes since a time at most 31 days back, newest first. Requires fax.read.","parameters":[{"name":"direction","in":"query","required":true,"description":"inbound or outbound","schema":{"type":"string","enum":["inbound","outbound"]}},{"name":"since","in":"query","required":true,"description":"RFC 3339 time, at most 31 days back","schema":{"type":"string","format":"date-time"}},{"name":"groupId","in":"query","required":false,"description":"Only this group","schema":{"type":"string"}},{"name":"numberId","in":"query","required":false,"description":"Only this number","schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"description":"next_cursor from the previous page","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 50)","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"A page of faxes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaxList"}}}},"400":{"description":"invalid_cursor: The cursor is not valid for this key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"validation_failed: The request is not valid","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/faxes/{id}":{"get":{"operationId":"GetFaxStatus","summary":"Get fax status","tags":["Faxes"],"description":"One fax with its status. Requires fax.read.","parameters":[{"name":"id","in":"path","required":true,"description":"A fax id","schema":{"type":"string"}}],"responses":{"200":{"description":"The fax","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fax"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"not_found: Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/numbers":{"get":{"operationId":"ListNumbers","summary":"List numbers","tags":["Directory"],"description":"The numbers this key may use.","parameters":[{"name":"canSend","in":"query","required":false,"description":"true: only numbers this key may send from","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Numbers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NumberList"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/groups":{"get":{"operationId":"ListGroups","summary":"List groups","tags":["Directory"],"description":"The groups this key may use.","responses":{"200":{"description":"Groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupList"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/usage":{"get":{"operationId":"GetUsage","summary":"Get page usage","tags":["Directory"],"description":"Pages this period, pooled across inbound and outbound.","responses":{"200":{"description":"Usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usage"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/subscriptions":{"post":{"operationId":"CreateSubscription","summary":"Subscribe to notices","tags":["Notices"],"description":"Power Automate trigger subscription. Requires events.manage.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscription"}}}},"responses":{"201":{"description":"Subscribed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCreated"}}},"headers":{"Location":{"schema":{"type":"string"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"not_found: Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"limit_reached: A workspace limit was reached","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"validation_failed: The request is not valid","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"operationId":"ListSubscriptions","summary":"List subscriptions","tags":["Notices"],"responses":{"200":{"description":"Subscriptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/subscriptions/{id}":{"delete":{"operationId":"DeleteSubscription","summary":"Unsubscribe","tags":["Notices"],"parameters":[{"name":"id","in":"path","required":true,"description":"A subscription id","schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted"},"401":{"description":"invalid_api_key: The API key is missing, invalid, expired or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"api_disabled: The API is turned off for this workspace; ip_not_allowed: This key can't be used from this address; insufficient_scope: This key doesn't have the scope this request needs","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"not_found: Not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"rate_limited: Too many requests; slow down and retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"unavailable: The service is temporarily unavailable; retry later","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"webhooks":{"fax.received":{"post":{"summary":"A fax was received","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Notice"}}}},"responses":{"200":{"description":"Any 2xx acknowledges the notice"}}}},"fax.delivered":{"post":{"summary":"A sent fax was delivered","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Notice"}}}},"responses":{"200":{"description":"Any 2xx acknowledges the notice"}}}},"fax.failed":{"post":{"summary":"A sent fax failed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Notice"}}}},"responses":{"200":{"description":"Any 2xx acknowledges the notice"}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"Bearer":{"type":"http","scheme":"bearer","description":"The same API key as a bearer token"}},"schemas":{"Cover":{"type":"object","properties":{"to":{"type":"string","maxLength":120},"from":{"type":"string","maxLength":120},"note":{"type":"string","maxLength":500}},"additionalProperties":false,"description":"An optional one-page cover sheet sent in front of the document."},"SendFaxRequest":{"type":"object","properties":{"from":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"to":{"type":"string","minLength":10,"maxLength":20,"description":"A 10-digit US or Canadian fax number","example":"+14255550100"},"document":{"anyOf":[{"type":"object","properties":{"contentBase64":{"type":"string","minLength":8,"maxLength":27962028,"pattern":"^[A-Za-z0-9+/]+={0,2}$","format":"byte","description":"The PDF, base64-encoded (at most 20 MiB decoded)."},"fileName":{"type":"string","maxLength":255}},"required":["contentBase64"],"additionalProperties":false},{"type":"object","properties":{"sharePoint":{"type":"object","properties":{"driveId":{"type":"string","minLength":1,"maxLength":256},"itemId":{"type":"string","minLength":1,"maxLength":256}},"required":["driveId","itemId"],"additionalProperties":false,"description":"A PDF already in the sending number's group library."}},"required":["sharePoint"],"additionalProperties":false}]},"cover":{"$ref":"#/components/schemas/Cover"}},"required":["from","to","document"],"additionalProperties":false},"FaxAccepted":{"type":"object","properties":{"id":{"type":"string","pattern":"^fax_[0-9a-f]{32}$","description":"A fax id","example":"fax_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"status":{"type":"string","const":"queued"},"pages":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","status","pages"],"additionalProperties":false},"SharePointLocation":{"type":"object","properties":{"siteId":{"type":"string"},"driveId":{"type":"string"},"itemId":{"type":"string"},"webUrl":{"type":"string","format":"uri"}},"required":["siteId","driveId","itemId","webUrl"],"additionalProperties":false,"description":"Where the document lives in your SharePoint; a link, never content."},"Fax":{"type":"object","properties":{"id":{"type":"string","pattern":"^fax_[0-9a-f]{32}$","description":"A fax id","example":"fax_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"direction":{"type":"string","enum":["inbound","outbound"]},"status":{"type":"string","enum":["queued","sending","delivered","failed","cancelled","received"]},"from":{"description":"Outbound: your sending number. Inbound: the sender, read live from SharePoint.","type":"object","properties":{"id":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"number":{"type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"}},"additionalProperties":false},"to":{"description":"Outbound: the recipient. Inbound: your receiving number. Not in lists.","type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"},"receivingNumber":{"type":"object","properties":{"id":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"number":{"type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"}},"required":["id"],"additionalProperties":false},"pages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"group":{"type":"object","properties":{"id":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"name":{"type":"string"}},"required":["id"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"},"completedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["busy","no_answer","not_a_fax","rejected","allowance_exhausted","other"]}},"required":["code"],"additionalProperties":false},"sharePoint":{"$ref":"#/components/schemas/SharePointLocation"}},"required":["id","direction","status","createdAt"],"additionalProperties":false,"description":"A fax. A value that is unknown or does not apply is absent, never null."},"FaxList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Fax"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"],"additionalProperties":false},"Number":{"type":"object","properties":{"id":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"number":{"anyOf":[{"type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"},{"type":"null"}]},"label":{"type":["string","null"]},"group":{"type":"object","properties":{"id":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"name":{"type":["string","null"]}},"required":["id","name"],"additionalProperties":false},"canSend":{"type":"boolean"}},"required":["id","number","label","group","canSend"],"additionalProperties":false},"NumberList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Number"}}},"required":["data"],"additionalProperties":false},"Group":{"type":"object","properties":{"id":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"name":{"type":["string","null"]}},"required":["id","name"],"additionalProperties":false},"GroupList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Group"}}},"required":["data"],"additionalProperties":false},"Usage":{"type":"object","properties":{"period":{"anyOf":[{"type":"object","properties":{"start":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"},"end":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"}},"required":["start","end"],"additionalProperties":false},{"type":"null"}]},"includedPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"usedPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"remainingPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"capReached":{"type":"boolean"}},"required":["period","includedPages","usedPages","remainingPages","capReached"],"additionalProperties":false,"description":"Pages this period, pooled across inbound and outbound."},"CreateSubscription":{"type":"object","properties":{"notificationUrl":{"type":"string","maxLength":2048,"format":"uri","description":"The Power Automate callback URL (Microsoft Power Automate callback hosts only)."},"events":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["fax.received","fax.delivered","fax.failed"]}},"groupId":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"numberId":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"}},"required":["notificationUrl","events"],"additionalProperties":false},"SubscriptionCreated":{"type":"object","properties":{"id":{"type":"string","pattern":"^sub_[0-9a-f]{32}$","description":"A subscription id","example":"sub_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"}},"required":["id"],"additionalProperties":false},"Subscription":{"type":"object","properties":{"id":{"type":"string","pattern":"^sub_[0-9a-f]{32}$","description":"A subscription id","example":"sub_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"events":{"type":"array","items":{"type":"string","enum":["fax.received","fax.delivered","fax.failed"]}},"groupId":{"anyOf":[{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},{"type":"null"}]},"numberId":{"anyOf":[{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"}},"required":["id","events","groupId","numberId","createdAt"],"additionalProperties":false},"SubscriptionList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Subscription"}}},"required":["data"],"additionalProperties":false},"Problem":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"code":{"type":"string","enum":["invalid_api_key","api_disabled","ip_not_allowed","insufficient_scope","rate_limited","number_not_allowed","pdf_invalid","allowance_exhausted","idempotency_conflict","idempotency_key_required","invalid_cursor","length_required","not_found","validation_failed","limit_reached","forbidden","unavailable","internal"]},"requestId":{"type":"string"}},"required":["type","title","status","code","requestId"],"additionalProperties":false,"description":"RFC 9457 problem details (application/problem+json)."},"Notice":{"type":"object","properties":{"type":{"type":"string","enum":["fax.received","fax.delivered","fax.failed","fax.test"]},"id":{"type":"string","pattern":"^evt_[0-9a-f]{32}$"},"occurredAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","example":"2026-10-18T15:04:05Z"},"test":{"type":"boolean"},"data":{"type":"object","properties":{"fax":{"type":"object","properties":{"id":{"type":"string","pattern":"^fax_[0-9a-f]{32}$","description":"A fax id","example":"fax_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"direction":{"type":"string","enum":["inbound","outbound"]},"status":{"type":"string","enum":["queued","sending","delivered","failed","cancelled","received"]},"pages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","direction","status"],"additionalProperties":false},"receivingNumber":{"description":"fax.received: your number the fax arrived on.","type":"object","properties":{"id":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"number":{"type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"}},"required":["id"],"additionalProperties":false},"senderNumber":{"description":"fax.received: the sender, read live from SharePoint.","type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"},"sendingNumber":{"description":"fax.delivered and fax.failed: your number it was sent from.","type":"object","properties":{"id":{"type":"string","pattern":"^num_[0-9a-f]{32}$","description":"A number id from GET /numbers (never the digits)","example":"num_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"number":{"type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"}},"required":["id"],"additionalProperties":false},"to":{"description":"fax.delivered and fax.failed: the recipient.","type":"string","pattern":"^\\+1[2-9]\\d{2}[2-9]\\d{6}$","example":"+14255550100"},"failure":{"type":"object","properties":{"code":{"type":"string","enum":["busy","no_answer","not_a_fax","rejected","allowance_exhausted","other"]}},"required":["code"],"additionalProperties":false},"group":{"type":"object","properties":{"id":{"type":"string","pattern":"^grp_[0-9a-f]{32}$","description":"A group id from GET /groups","example":"grp_0f3c9a8e2b7d4c1e9a5f6b2c3d4e5f60"},"name":{"type":"string"}},"required":["id"],"additionalProperties":false},"sharePoint":{"$ref":"#/components/schemas/SharePointLocation"}},"required":["fax"],"additionalProperties":false}},"required":["type","id","occurredAt","test","data"],"additionalProperties":false,"description":"A signed notice (Standard Webhooks headers webhook-id, webhook-timestamp, webhook-signature)."}}}}