route_config. Routes apply to the whole platform. Requires Super User scope. Other scopes, Reseller included, get 403. The API publishes the change on the service bus (SBUS) NmsRoute channel, and core applies it when the event arrives, so 202 means published, not applied.route-destination-match-pattern is required. route-source-match-pattern, route-class, and route-match-server-hostname default to *, route-is-enabled to yes, and route-method to fixed. Those 4 match fields identify the route, and route-id encodes them. The API does not check for an existing route with the same 4 values.synchronous=yes, in the body or the query string, to wait up to 2 seconds for the change to be applied. You then get 200 with the route and its route-id. If it is not applied in time, you get the usual 202 and the write still completes.POST /routes/{route-id}/routecon.Authorization: Bearer ********************synchronous=yes once the route is applied: the route, with its route-id.curl --location 'https://awqacore01.crexendocloud.com/ns-api/v2/routes' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"route-destination-match-pattern": "sip:1800*@*",
"description": "Toll-free outbound",
"route-method": "cost"
}'{
"route-destination-match-pattern": "sip:1800*@*",
"route-source-match-pattern": "*",
"route-class": "*",
"route-match-server-hostname": "core1.example.com",
"route-is-enabled": "yes",
"description": "Toll-free outbound from core1",
"route-method": "fixed",
"route-id": "c2lwOjE4MDAqQCp8fCp8fCp8fGNvcmUxLmV4YW1wbGUuY29t"
}