{"id":2109,"date":"2022-11-08T17:45:16","date_gmt":"2022-11-08T17:45:16","guid":{"rendered":"https:\/\/serviceobjects.wpaladdin.com\/?post_type=serviceobjects&#038;p=2109"},"modified":"2025-09-27T12:38:13","modified_gmt":"2025-09-27T19:38:13","slug":"agca-soap","status":"publish","type":"page","link":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/","title":{"rendered":"AGCA &#8211; SOAP"},"content":{"rendered":"\n<div class=\"wp-block-create-block-tabs\"><ul class=\"tab-labels\" role=\"tablist\" aria-label=\"tabbed content\"><li class=\"tab-label active\" role=\"tab\" aria-selected=\"true\" aria-controls=\"C#\" tabindex=\"0\">C#<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"Python\" tabindex=\"0\">Python<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"NodeJS\" tabindex=\"0\">NodeJS<\/li><\/ul><div class=\"tab-content\">\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong>Address GeoCode Canada C# Code Snippet<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\ufeffusing AGCAService;\n\nnamespace address_geocode_canada_dot_net.SOAP\n{\n    \/\/\/ &lt;summary>\n    \/\/\/ Provides functionality to call the ServiceObjects Address Geocode CA (AGCA) SOAP service's GetGeoLocation operation,\n    \/\/\/ retrieving geocoding information (e.g., latitude, longitude, postal code) for a given Canadian address with fallback to a backup endpoint\n    \/\/\/ for reliability in live mode.\n    \/\/\/ &lt;\/summary>\n    public class GetGeoLocationValidation\n    {\n        private const string LiveBaseUrl = \"https:\/\/sws.serviceobjects.com\/GCC\/soap.svc\/SOAP\";\n        private const string BackupBaseUrl = \"https:\/\/swsbackup.serviceobjects.com\/GCC\/soap.svc\/SOAP\";\n        private const string TrialBaseUrl = \"https:\/\/trial.serviceobjects.com\/GCC\/soap.svc\/SOAP\";\n\n        private readonly string _primaryUrl;\n        private readonly string _backupUrl;\n        private readonly int _timeoutMs;\n        private readonly bool _isLive;\n\n        \/\/\/ &lt;summary>\n        \/\/\/ Initializes URLs\/timeout\/IsLive.\n        \/\/\/ &lt;\/summary>\n        public GetGeoLocationValidation(bool isLive)\n        {\n            _timeoutMs = 10000;\n            _isLive = isLive;\n\n            _primaryUrl = isLive ? LiveBaseUrl : TrialBaseUrl;\n            _backupUrl = isLive ? BackupBaseUrl : TrialBaseUrl;\n\n            if (string.IsNullOrWhiteSpace(_primaryUrl))\n                throw new InvalidOperationException(\"Primary URL not set.\");\n            if (string.IsNullOrWhiteSpace(_backupUrl))\n                throw new InvalidOperationException(\"Backup URL not set.\");\n        }\n\n        \/\/\/ &lt;summary>\n        \/\/\/ Async, returns the latitude and longitude for a given Canadian address. This operation will use cascading logic when an exact address match is not found and it will return the next closest level match available. The operation output is designed to allow the service to return new pieces of data as they become available without having to re-integrate.\n        \/\/\/ &lt;\/summary>\n        \/\/\/ &lt;param name=\"Address\">Address line of the address to geocode. For example, \u201c124 Main Street\u201d. Required.&lt;\/param>\n        \/\/\/ &lt;param name=\"Municipality\">The municipality of the address to geocode. For example, \u201cCayuga\u201d. Optional if postal code is provided.&lt;\/param>\n        \/\/\/ &lt;param name=\"Province\">The province of the address to geocode. For example, \u201cON\u201d. Optional if postal code is provided.&lt;\/param>\n        \/\/\/ &lt;param name=\"PostalCode\">The postal code of the address to geocode. Optional if municipality and province are provided.&lt;\/param>\n        \/\/\/ &lt;param name=\"LicenseKey\">Your license key to use the service.&lt;\/param>\n        public async Task&lt;Location> GetGeoLocation(string Address, string Municipality, string Province, string PostalCode, string LicenseKey)\n        {\n            GCCSoapServiceClient clientPrimary = null;\n            GCCSoapServiceClient clientBackup = null;\n\n            try\n            {\n                \/\/ Attempt Primary\n                clientPrimary = new GCCSoapServiceClient();\n                clientPrimary.Endpoint.Address = new System.ServiceModel.EndpointAddress(_primaryUrl);\n                clientPrimary.InnerChannel.OperationTimeout = TimeSpan.FromMilliseconds(_timeoutMs);\n\n                Location response = await clientPrimary.GetGeoLocationAsync(\n                    Address, Municipality, Province, PostalCode, LicenseKey).ConfigureAwait(false);\n\n                if (_isLive &amp;&amp; !IsValid(response))\n                {\n                    throw new InvalidOperationException(\"Primary endpoint returned null or a fatal Number=4 error for GetGeoLocation\");\n                }\n                return response;\n            }\n            catch (Exception primaryEx)\n            {\n                try\n                {\n                    clientBackup = new GCCSoapServiceClient();\n                    clientBackup.Endpoint.Address = new System.ServiceModel.EndpointAddress(_backupUrl);\n                    clientBackup.InnerChannel.OperationTimeout = TimeSpan.FromMilliseconds(_timeoutMs);\n\n                    return await clientBackup.GetGeoLocationAsync(\n                        Address, Municipality, Province, PostalCode, LicenseKey).ConfigureAwait(false);\n                }\n                catch (Exception backupEx)\n                {\n                    throw new InvalidOperationException(\n                        $\"Both primary and backup endpoints failed.\\n\" +\n                        $\"Primary error: {primaryEx.Message}\\n\" +\n                        $\"Backup error: {backupEx.Message}\");\n                }\n                finally\n                {\n                    clientBackup?.Close();\n                }\n            }\n            finally\n            {\n                clientPrimary?.Close();\n            }\n        }\n\n        private static bool IsValid(Location response) => response?.Error == null || response.Error.Number != \"4\";\n    }\n}<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong>Address GeoCode Canada Python Code Snippet<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">from suds.client import Client\nfrom suds import WebFault\nfrom suds.sudsobject import Object\n\n\nclass GetGeoLocationSoap:\n    def __init__(self, license_key: str, is_live: bool = True, timeout_ms: int = 15000):\n        \"\"\"\n        license_key: Service Objects AGCA license key.\n        is_live: Whether to use live or trial endpoints\n        timeout_ms: SOAP call timeout in milliseconds\n        \"\"\"\n        self.is_live = is_live\n        self.timeout = timeout_ms \/ 1000.0\n        self.license_key = license_key\n\n        # WSDL URLs\n        self._primary_wsdl = (\n            \"https:\/\/sws.serviceobjects.com\/GCC\/soap.svc?wsdl\"\n            if is_live\n            else \"https:\/\/trial.serviceobjects.com\/GCC\/soap.svc?wsdl\"\n        )\n        self._backup_wsdl = (\n            \"https:\/\/swsbackup.serviceobjects.com\/GCC\/soap.svc?wsdl\"\n            if is_live\n            else \"https:\/\/trial.serviceobjects.com\/GCC\/soap.svc?wsdl\"\n        )\n\n    def get_geo_location(\n        self, address: str, municipality: str, province: str, postal_code: str\n    ) -> Object:\n        \"\"\"\n        Calls the GetGeoLocation SOAP  API to retrieve the information.\n\n        Parameters:\n            address: Address line of the address to geocode (e.g., \"123 Main Street\").\n            municipality: The municipality of the address to geocode (e.g., \"Cayuga\").\n            province: The province of the address to geocode (e.g., \"ON\").\n            postal_code: The postal code of the address to geocode (e.g., \"N0A 1E0\").\n            license_key: Your ServiceObjects license key.\n            is_live: Determines whether to use the live or trial servers.\n            timeout_ms: Timeout, in milliseconds, for the call to the service.\n\n        Returns:\n            suds.sudsobject.Object: SOAP response containing geocoding details or error.\n        \"\"\"\n        # Common kwargs for both calls\n        call_kwargs = dict(\n            Address=address,\n            Municipality=municipality,\n            Province=province,\n            PostalCode=postal_code,\n            LicenseKey=self.license_key,\n        )\n\n        # Attempt primary\n        try:\n            client = Client(self._primary_wsdl)\n            # Override endpoint URL if needed:\n            # client.set_options(location=self._primary_wsdl.replace('?wsdl','\/soap'))\n            response = client.service.GetGeoLocation(**call_kwargs)\n\n            # If response invalid or Error.Number == \"4\", trigger fallback\n            if response is None or (\n                hasattr(response, \"Error\")\n                and response.Error\n                and response.Error.Number == \"4\"\n            ):\n                raise ValueError(\"Primary returned no result or Error.Number=4\")\n\n            return response\n\n        except (WebFault, ValueError, Exception) as primary_ex:\n            try:\n                client = Client(self._backup_wsdl)\n                response = client.service.GetGeoLocation(**call_kwargs)\n                if response is None:\n                    raise ValueError(\"Backup returned no result\")\n                return response\n            except (WebFault, Exception) as backup_ex:\n                msg = (\n                    \"Both primary and backup endpoints failed.\\n\"\n                    f\"Primary error: {str(primary_ex)}\\n\"\n                    f\"Backup error: {str(backup_ex)}\"\n                )\n                raise RuntimeError(msg)<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong>Address GeoCode Canada NodeJS Code Snippet<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\nimport { soap } from 'strong-soap';\n\n\/**\n * &lt;summary>\n * A class that provides functionality to call the ServiceObjects Address Geocode CA (AGCA) SOAP service's GetGeoLocation endpoint,\n * retrieving geocoding information (e.g., latitude, longitude, postal code) for a given Canadian address with fallback to a backup endpoint for reliability in live mode.\n * &lt;\/summary>\n *\/\nclass GetGeoLocationSoap {\n    \/**\n     * &lt;summary>\n     * Initializes a new instance of the GetGeoLocationSoap class with the provided input parameters,\n     * setting up primary and backup WSDL URLs based on the live\/trial mode.\n     * &lt;\/summary>\n     * @param {string} Address - Address line of the address to geocode (e.g., \"123 Main Street\").\n     * @param {string} Municipality - The municipality of the address to geocode (e.g., \"Cayuga\").\n     * @param {string} Province - The province of the address to geocode (e.g., \"ON\").\n     * @param {string} PostalCode - The postal code of the address to geocode (e.g., \"K1A 0A1\").\n     * @param {string} LicenseKey - Your license key to use the service.\n     * @param {boolean} isLive - Value to determine whether to use the live or trial servers.\n     *\/\n    constructor(Address, Municipality, Province, PostalCode, LicenseKey, isLive = true, timeoutSeconds = 15) {\n\n        this.args = {\n            Address,\n            Municipality,\n            Province,\n            PostalCode,\n            LicenseKey\n        };\n\n        this.isLive = isLive;\n        this.timeoutSeconds = timeoutSeconds;\n\n        this.LiveBaseUrl = \"https:\/\/sws.serviceobjects.com\/GCC\/soap.svc?wsdl\";\n        this.BackupBaseUrl = \"https:\/\/swsbackup.serviceobjects.com\/GCC\/soap.svc?wsdl\";\n        this.TrialBaseUrl = \"https:\/\/trial.serviceobjects.com\/GCC\/soap.svc?wsdl\";\n\n        this._primaryWsdl = this.isLive ? this.LiveBaseUrl : this.TrialBaseUrl;\n        this._backupWsdl = this.isLive ? this.BackupBaseUrl : this.TrialBaseUrl;\n    }\n\n    \/**\n     * &lt;summary>\n     * Asynchronously calls the GetGeoLocation SOAP endpoint, attempting the primary endpoint\n     * first and falling back to the backup if the response is invalid (Error.Number == '4') in live mode\n     * or if the primary call fails.\n     * &lt;\/summary>\n     * &lt;returns type=\"Promise&lt;GetGeoLocationResponse>\">A promise that resolves to a GetGeoLocationResponse object containing geocoding details or an error.&lt;\/returns>\n     * &lt;exception cref=\"Error\">Thrown if both primary and backup calls fail, with detailed error messages.&lt;\/exception>\n     *\/\n    async invokeAsync() {\n        try {\n            const primaryResult = await this._callSoap(this._primaryWsdl, this.args);\n\n            if (this.isLive &amp;&amp; !this._isValid(primaryResult)) {\n                console.warn(\"Primary returned Error.Number == '4', falling back to backup...\");\n                const backupResult = await this._callSoap(this._backupWsdl, this.args);\n                return backupResult;\n            }\n\n            return primaryResult;\n        } catch (primaryErr) {\n            try {\n                const backupResult = await this._callSoap(this._backupWsdl, this.args);\n                return backupResult;\n            } catch (backupErr) {\n                throw new Error(`Both primary and backup calls failed:\\nPrimary: ${primaryErr.message}\\nBackup: ${backupErr.message}`);\n            }\n        }\n    }\n\n    \/**\n     * &lt;summary>\n     * Performs a SOAP service call to the specified WSDL URL with the given arguments,\n     * creating a client and processing the response into a GetGeoLocationResponse object.\n     * &lt;\/summary>\n     * &lt;param name=\"wsdlUrl\" type=\"string\">The WSDL URL of the SOAP service endpoint (primary or backup).&lt;\/param>\n     * &lt;param name=\"args\" type=\"Object\">The arguments to pass to the GetGeoLocation method.&lt;\/param>\n     * &lt;returns type=\"Promise&lt;GetGeoLocationResponse>\">A promise that resolves to a GetGeoLocationResponse object containing the SOAP response data.&lt;\/returns>\n     * &lt;exception cref=\"Error\">Thrown if the SOAP client creation fails, the service call fails, or the response cannot be parsed.&lt;\/exception>\n     *\/\n    _callSoap(wsdlUrl, args) {\n        return new Promise((resolve, reject) => {\n            soap.createClient(wsdlUrl, { timeout: this.timeoutSeconds * 1000 }, (err, client) => {\n                if (err) return reject(err);\n\n                client.GetGeoLocation(args, (err, result) => {\n                    const rawData = result?.Location;\n                    try {\n                        if (!rawData) {\n                            return reject(new Error(\"SOAP response is empty or undefined.\"));\n                        }\n                        resolve(rawData);\n                    } catch (parseErr) {\n                        reject(new Error(`Failed to parse SOAP response: ${parseErr.message}`));\n                    }\n                });\n            });\n        });\n    }\n\n    \/**\n     * &lt;summary>\n     * Checks if a SOAP response is valid by verifying that it exists and either has no Error object\n     * or the Error.Number is not equal to '4'.\n     * &lt;\/summary>\n     * &lt;param name=\"response\" type=\"GetGeoLocationResponse\">The GetGeoLocationResponse object to validate.&lt;\/param>\n     * &lt;returns type=\"boolean\">True if the response is valid, false otherwise.&lt;\/returns>\n     *\/\n    _isValid(response) {\n        return response &amp;&amp; (!response.Error || response.Error.Number !== '4');\n    }\n}\n\nexport { GetGeoLocationSoap };\n<\/pre>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":2072,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2109","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AGCA - SOAP<\/title>\n<meta name=\"description\" content=\"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary&gt; \/\/\/ Provides\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AGCA - SOAP\" \/>\n<meta property=\"og:description\" content=\"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary&gt; \/\/\/ Provides\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-27T19:38:13+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/\",\"name\":\"AGCA - SOAP\",\"isPartOf\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\"},\"datePublished\":\"2022-11-08T17:45:16+00:00\",\"dateModified\":\"2025-09-27T19:38:13+00:00\",\"description\":\"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary> \/\/\/ Provides\",\"breadcrumb\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DOTS Address Geocode \u2013\u00a0Canada\u00a0\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AGCA &#8211; Code Snippets and Sample Code\",\"item\":\"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AGCA &#8211; SOAP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#website\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#organization\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"contentUrl\":\"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"width\":2560,\"height\":1440,\"caption\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\"},\"image\":{\"@id\":\"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AGCA - SOAP","description":"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary> \/\/\/ Provides","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/","og_locale":"en_US","og_type":"article","og_title":"AGCA - SOAP","og_description":"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary> \/\/\/ Provides","og_url":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/","og_site_name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","article_modified_time":"2025-09-27T19:38:13+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/","url":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/","name":"AGCA - SOAP","isPartOf":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#website"},"datePublished":"2022-11-08T17:45:16+00:00","dateModified":"2025-09-27T19:38:13+00:00","description":"C#PythonNodeJS Address GeoCode Canada C# Code Snippet \ufeffusing AGCAService; namespace address_geocode_canada_dot_net.SOAP { \/\/\/ &lt;summary> \/\/\/ Provides","breadcrumb":{"@id":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/agca-soap\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.serviceobjects.com\/docs\/"},{"@type":"ListItem","position":2,"name":"DOTS Address Geocode \u2013\u00a0Canada\u00a0","item":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/"},{"@type":"ListItem","position":3,"name":"AGCA &#8211; Code Snippets and Sample Code","item":"https:\/\/www.serviceobjects.com\/docs\/dots-address-geocode-canada\/agca-code-snippets-and-sample-code\/"},{"@type":"ListItem","position":4,"name":"AGCA &#8211; SOAP"}]},{"@type":"WebSite","@id":"https:\/\/www.serviceobjects.com\/docs\/#website","url":"https:\/\/www.serviceobjects.com\/docs\/","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","description":"","publisher":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.serviceobjects.com\/docs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.serviceobjects.com\/docs\/#organization","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","url":"https:\/\/www.serviceobjects.com\/docs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/","url":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","contentUrl":"https:\/\/www.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","width":2560,"height":1440,"caption":"Service Objects | Contact, Phone, Email Verification | Data Quality Services"},"image":{"@id":"https:\/\/www.serviceobjects.com\/docs\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/2109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/comments?post=2109"}],"version-history":[{"count":12,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/2109\/revisions"}],"predecessor-version":[{"id":12363,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/2109\/revisions\/12363"}],"up":[{"embeddable":true,"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/2072"}],"wp:attachment":[{"href":"https:\/\/www.serviceobjects.com\/docs\/wp-json\/wp\/v2\/media?parent=2109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}